
일반 이름을 가진 gz 압축 로그 파일이 많이 있는데, 여기에 반영되는 기간을 확인해야 합니다. 나는 zcat에 대해 알고 있습니다 | head이지만 이는 파일의 시작 부분에만 작동합니다.
전체 파일의 압축을 풀지 않고 어떻게 마지막 줄만 얻을 수 있나요?
답변1
헤드엔드가 아닌 파일의 테일엔드에서 행을 원하는 경우 tail
다음 대신 사용하십시오 head
.
$ zcat /var/log/syslog.2.gz | tail -1
Aug 24 07:09:02 myhost rsyslogd: [origin software="rsyslogd" swVersion="8.4.2" x-pid="796" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
답변2
FWIW: 저는 gzip 파일이 커짐에 따라 꼬리( -t
) 또는 연속 꼬리( )를 만들 수 있는 명령줄 도구를 개발했습니다. -T
(그 외 다양한 옵션 사용 가능):
https://github.com/circulosmeos/gztool
귀하의 경우에는 다음과 같습니다.
$ gztool -t myfile.gz | tail -1
이러한 작업에 대해 gztool
해당 작업과 함께 인터리브된 작은(<1%/gzip) 인덱스 파일이 생성됩니다.이것의 장점은 파일이 다시 완전히 압축 해제되지 않기 때문에 해당 파일에 대한 모든 다음 "테일" 또는 추출이 거의 시간/CPU를 소비하지 않는다는 것입니다!