두 개의 큰 gzip 파일이 있습니다. 공통 행을 찾아야 합니다. Zgrep(gzip)은 이 작업을 광범위하게 수행할 수 있지만 zgrep -f <unzipped file> <zipped file>
이를 수행하는 스위치는 찾을 수 없습니다 zgrep -f <zipped file> <zipped file>
. 내가 뭐 놓친 거 없니?
답변1
gunzip(1)
그러면 sort(1)
파일을 처리하고 결과를 사용하는 것이 comm(1)
더 효율적입니다 .
답변2
GNU는 grep(1)
원하는 것을 수행할 수 없지만 시스템과 셸이 이를 지원하는 경우 프로세스 대체를 사용하여 비슷한 결과를 얻을 수 있습니다.
$ grep -f <(gunzip < zipped_patterns.txt.gz) zipped_data.txt.gz
gunzip < file.gz
프로세스 대체에서 입력 리디렉션( )을 사용 하면 gunzip(1)
압축이 풀린 데이터를 디스크에 쓰지 않고 메모리에서 파일의 압축이 풀립니다. 스키마 파일이 사용 가능한 RAM에 비해 충분히 크면 시스템 충돌이 발생할 가능성이 높습니다. ~처럼폰 브랜드파일을 정렬하여 사용하는 것이 comm(1)
더 효율적 이라는 점을 지적합니다.