簡単なことをしましたが、awk
これを行う方法が見つかりません!次のように、年、ユリウス暦の日時の名前を付けた項目を含むテキストファイルがあります。
blah_2012251_130500_blah
blah_2012251_131000_blah
blah_2012251_131500_blah
...
blah_2012253_063000_blah
特定の時間範囲内の項目のみを含む新しいファイルを作成する方法を見つけようとしています。たとえば、2012年251日午後2時2分(140200)から2012年252日午前6時7分(060700)までの時間を含むファイルを含める必要があります。
blah_2012251_140000_blah
blah_2012251_140500_blah
...
blah_2012252_060500_blah
blah_2012252_061000_blah
また、この例のように、ファイルが常に5分ごとに増加するわけではないので、開いた範囲でなければなりません。
答え1
次は動作します。必要に応じてフィールド番号2と3を調整します。
awk -F'_' 'int($2""$3) > 2012252140600 && int($2""$3) < 2012252180700' filename
答え2
f1とf2は開始日時、l1とl2は終了日時です。
awk -F_ -v f1="2012251" -v f2="140200" -v l1="2012252" -v l2="060700" '($2==f1 && $3>=f2) || ($2==l1 && $3<=l2) || ($2>f1 && $2<l1)' file