두 날짜 사이의 로그 세부 정보를 얻고 싶지만 다음을 사용하여 아무것도 인쇄할 수 없습니다.
egrep "^\[MAY 16 11:00:00\]" alert.log -A 10000 | egrep "^\[MAY 16 16:30:00\]" -B 10000
답변1
사용 sed
:
sed -n '/May 16 11:00:00/,/May 16 16:30:00/p' /path/to/inputfile
의 경우 grep
문제는 인수의 순서가 먼저일 수 있다고 생각합니다. -A
및 -B
인수를 넣습니다.뒤쪽에입력 파일이므로 , 및 ; grep
라는 이름의 파일을 읽으려고 할 때 대괄호를 이스케이프하지 않습니다. 파이프라인은 다음과 같이 작동할 수 있습니다.-A
-B
10000
grep -E -A10000 'May 16 11:00:00' alert.log | grep -E -B10000 'May 16 16:30:00'
이는 검색 중인 정확한 타임스탬프와 실제로 일치하는 로그 항목이 있는 경우에만 작동합니다. 이에 따라 검색 제한으로 원하는 첫 번째 항목과 마지막 항목을 조정하세요.
답변2
egrep
귀하가 제공한 예를 바탕으로 다음을 사용하십시오.
egrep "May 16 1[1-6]:..:.." /path/to/file | egrep -v "May .. 16:[3-5][1-9]:[0-9][1-9]"