bzgrep -H 패턴 파일 .bz2는 파일 이름은 없지만“표준 입력”


1

-H는 항상 일치하는 줄 앞에 파일 이름을 인쇄해야한다고 생각했습니다. 이것은 grep에는 해당되지만 bzgrep에는 해당되지 않습니다.

$ grep -H pattern file1 
file1: data pattern data

$ bzgrep -H pattern file2.bz2 
(standard input): data pattern data

이에 대한 해결 방법이 있습니까? 수백 개의 bz2 파일을 grep해야합니다. 검색 전에 압축을 풀 수는 없습니다 ...


명령 행에 여러 파일을 지정하십시오
golimar

명령 줄이 너무 짧습니다. 수백 개의 파일을 검색해야합니다. 'for'루프에서 bzgrep를 사용합니다. 여기서 변수는 파일이 다른 디렉토리에 있으므로 목록에서 파일 이름을 가져옵니다.
Washuu

그런 다음 빈 파일을 만들고 매번 bz2 파일과 빈 파일을 모두 grep하십시오.
golimar

해결 방법과 같습니다. 감사합니다. 유일한 단점은 파일 이름이 별도의 줄에 있으며 올바르게 구문 분석해야한다는 것입니다. 그러나 왜 그런 버그가 눈에 띄지 않았는지 궁금합니다. 아마도 이전 버전의 bzgrep이 있습니까? 최신 CentOS에서 테스트하려고합니다.
Washuu

답변:


0

grepgzip / bzip2를 내부적으로 지원하는 버전은 없습니다 . 대신 / bzgrep와 같은 쉘 스크립트가 존재 하며 zgrep, 기본적으로 gunzip/ bunzip2바이너리를 호출하고 stdin을 통해 grep에 출력을 공급합니다. 따라서 -Hgrep을 직접 호출하지 않으면 플래그가 예상대로 작동하지 않습니다.


0

나는 bzgrep를 보았다. 실제로 bash 스크립트 파일이었습니다. 문제를 해결하기 위해 스크립트를 수정하는 것은 매우 간단했기 때문에 다른 버전의 bzgrep에서 다른 사람이 수정했는지 궁금합니다. 우분투와 데비안에서는 수정되었지만 CentOS에서는 수정되지 않았습니다.

누군가 같은 문제가 발생하면 최신 시스템에 로그인하고 bzgrep 쉘 스크립트를 복사하십시오. 가장 쉬운 해결책입니다.


답변에 필요한 수정 사항을 게시 할 수 있습니까?
Dennis
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.