1
私は次の2つのログファイル、すなわちLog_1.log Log_2.logを持っています。結果セットをUnixの2つのセクションに分割する方法は?
Log_1.log:
Apr 10 02:07:20 Data 1
May 10 04:11:09 Data 2
June 11 06:22:35 Data 3
Aug 12 09:08:07 Data 4
Log_2.log
Apr 10 09:07:20 Data 1
Apr 10 10:07:10 Data 2
Jul 11 11:07:30 Data 3
Aug 18 12:50:40 Data 4
次のコードを使用して、開始時刻と終了時刻の間のデータを抽出しています。私は以下の形式で出力を取得するため
sort -t' ' -k1,1M -k2,3n log_1.log log_2.log | sed -n '/Apr 10 02:07:20/,/Jul 11 11:07:30/p'
と私の出力が
Apr 10 02:07:20 Data 1
Apr 10 09:07:20 Data 1
Apr 10 10:07:10 Data 2
May 10 04:11:09 Data 2
June 11 06:22:35 Data 3
Jul 11 11:07:30 Data 3
であるが、それは可能ですか?
Log_1.log
Apr 10 02:07:20 Data 1
May 10 04:11:09 Data 2
June 11 06:22:35 Data 3
Log_2.log:
Apr 10 09:07:20 Data 1
Apr 10 10:07:10 Data 2
Jul 11 11:07:30 Data 3
助けてください。ありがとうございました
お返事ありがとうございます。入力した日付がログファイルに存在する場合、コードは正常に機能します。 ''/Jan 01 10:00:00 /、/ Jun 1 12:00:/ p''のような日付を入力すると、そのような日付はログファイルにはないので、結果はnullになります。入力された開始時刻がログファイルに存在しない場合は、次の最も近い日付から開始するソリューションはありますか?終了日は同じです。 – Vishwaroopa
これらのツールは単なるテキスト処理ツールです。このようなロジックが必要になったら、より洗練されたスクリプトを書く必要があります。特に月の名前はアルファベット順に比較できないため、最初に変換する必要があります。 – raimue
たとえば、次の質問を参照してください。[Q1](https://unix.stackexchange.com/questions/120831/grep-for-range-of-numbers)[Q2](https://stackoverflow.com/questions/7575267 /指定された範囲のログファイルからの抽出データ) – raimue