로그 파일에서 마지막 100 줄의 로그를 검색해야합니다. sed 명령을 시도했습니다
sed -n -e '100,$p' logfilename
이 명령을 변경하여 마지막 100 줄 을 구체적으로 검색하는 방법을 알려주십시오 .
답변
다음과 같이 tail 명령을 사용할 수 있습니다 .
tail -100 <log file> > newLogfile
이제 마지막 100 줄이 newLogfile
편집하다:
twalberg가 언급 한 최신 버전의 tail 명령을 사용하십시오.
tail -n 100 <log file> > newLogfile
답변
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
답변
“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>
답변
나는 이것이 매우 오래되었다는 것을 알고 있지만 그것이 도움이 될 수있는 사람에게는.
less +F my_log_file.log
그것은 기본적이며 더 적은 일로 더 많은 강력한 일을 할 수 있습니다. 일단 로그를보기 시작하면 검색, 행 번호로 이동, 패턴 검색 등을 수행 할 수 있으며 대용량 파일의 경우 더 빠릅니다.
로그에 대한 vim과 같습니다.
원본이 적지 않은 문서 : https://linux.die.net/man/1/less
적은 치트 시트 : https://gist.github.com/glnds/8862214
답변
len=`cat filename | wc -l`
len=$(( $len + 1 ))
l=$(( $len - 99 ))
sed -n "${l},${len}p" filename
첫 번째 줄은 파일의 길이 (총 줄)를 취한 다음 총 줄에서 +1을 취한 다음 100 레코드를 처리해야합니다. 총 길이에서 -99를 입력 한 다음 sed 명령에 변수를 넣어 파일에서 마지막 100 줄을 가져옵니다.
이것이 도움이되기를 바랍니다.