
下記のコマンドを使用して、過去 10 分間のログ データを表示しています。月が同じであれば問題なく動作しますが、月が変更されるとデータは表示されません。
awk -v d1="$D1" -v d2="$D2" '$0 > d1 && $0 < d2 || $0 ~ d2' /home/user.log
以下の場合は問題なく動作します。
D1="Aug 1 12:00:00"
D2="Aug 1 12:10:00"
ただし、以下の場合にはデータは表示されません。
D1="Jul 31 11:55:00"
D2="Aug 1 00:05:00"
追伸:私はAIXを使用しています
答え1
これは、日付ではなく文字列を比較しているためだと思います。月が変わると、比較が壊れます。
エポック形式や数値日付形式など、別の方法で日付をフォーマットしてみてください。
date -d "Jul 31 11:55:00" +%s
1533063300を出力します。同様に、
date -d "Aug 1 00:05:00" +%s
1533107100を出力します。
そこからは簡単に比較できるはずです。