마지막 100 줄 로그 검색


164

로그 파일에서 마지막 100 줄의 로그를 검색해야합니다. sed 명령을 시도했습니다

sed -n -e '100,$p' logfilename

이 명령을 변경하여 마지막 100 줄 을 구체적으로 검색하는 방법을 알려주십시오 .


이것은 매뉴얼에 언급되어 있습니다 : gnu.org/software/sed/manual/html_node/tail.html#tail , sed가 tail을 에뮬레이트하는 방법.
Lars Fischer

1
tail -f -n 100
로그 파일 이름

답변:


302

다음과 같이 tail 명령을 사용할 수 있습니다 .

tail -100 <log file>   > newLogfile

이제 마지막 100 줄이 newLogfile

편집하다:

twalberg가 언급 한 최신 버전의 tail 명령을 사용하십시오.

tail -n 100 <log file>   > newLogfile

17
좀 더 최신 버전의 tail구문은 다음과 같습니다 tail -n 100 <filename>.
twalberg

14

sed에 대한 문서에서 찾을 수있는 마지막 100 줄을 인쇄하는 sed 스크립트를보십시오 ( https://www.gnu.org/software/sed/manual/sed.html#tail ).

$ cat sed.cmd
1! {; H; g; }
1,100 !s/[^\n]*\n//
$p

$ sed -nf sed.cmd logfilename

나를 위해 그것은 당신의 스크립트보다 훨씬 어렵습니다.

tail -n 100 logfilename

훨씬 간단합니다. 그리고 그것은 매우 효율적이며, 필요하지 않은 경우 모든 파일을 읽을 수는 없습니다. strace를 보고서에 대한 내 대답을 참조하십시오 tail ./huge-file: /unix/102905/does-tail-read-the-whole-file/102910#102910


13

"tail"은 파일의 마지막 부분을 표시하는 명령으로, 사용 가능한 적절한 스위치를 사용하면보다 구체적인 출력을 얻을 수 있습니다. 가장 많이 사용되는 스위치는 -n 및 -f입니다.

개요

꼬리 [-F | -f | -r] [-q] [-b 번호 | -c 번호 | -n 숫자] [파일 ...]

여기

-n number : 위치는 숫자 라인입니다.

-f : -f 옵션은 파일 끝에 도달했을 때 tail이 멈추지 않고 입력에 추가 데이터가 추가 될 때까지 기다리게합니다. 표준 입력이 파이프 인 경우 -f 옵션은 무시되지만 FIFO 인 경우에는 무시됩니다.

마지막 100 줄 로그 검색

To get last static 100 lines  
     tail -n 100 <file path>

To get real time last 100 lines
     tail -f -n 100 <file path>

3

나는 이것이 매우 오래되었다는 것을 알고 있지만 그것이 도움이 될 수있는 사람에게는.

less +F my_log_file.log

그것은 기본적이며 더 적은 일로 더 많은 강력한 일을 할 수 있습니다. 일단 로그를보기 시작하면 검색, 행 번호로 이동, 패턴 검색 등을 수행 할 수 있으며 대용량 파일의 경우 더 빠릅니다.

로그에 대한 vim과 같습니다.

원본이 적지 않은 문서 : https://linux.die.net/man/1/less

적은 치트 시트 : https://gist.github.com/glnds/8862214


1
len=`cat filename | wc -l`
len=$(( $len + 1 ))
l=$(( $len - 99 ))
sed -n "${l},${len}p" filename

첫 번째 줄은 파일의 길이 (총 줄)를 취한 다음 총 줄에서 +1을 취한 다음 100 레코드를 처리해야합니다. 총 길이에서 -99를 입력 한 다음 sed 명령에 변수를 넣어 파일에서 마지막 100 줄을 가져옵니다.

이것이 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.