간단한 작업을 수행했지만 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