많은 수의 .gz 파일에서 ASCII가 아닌 문자를 grep하고 싶습니다. 단, CentOS 7.6(GNU grep v2.20)에서는 다음 내용이 작동하지 않습니다.
$ zcat yyyy/yyyymmdd/filname.yyyymmdd.gz | grep --color='auto' -P -n "[\x80-\xFF]"
$ zgrep --color='auto' -P -n "[\x80-\xFF]" yyyy/yyyymmdd/filname.yyyymmdd.gz
이 Perl 검색은 작동합니다.
$ zcat yyyy/yyyymmdd/filname.yyyymmdd.gz | perl -ne 'print "$. $_" if m/[\x80-\xFF]/'
하지만 아래와 같이 여러 파일에 대해 어떻게 이 작업을 수행할 수 있습니까?
$ zgrep "[\x80-\xFF]" 2020/2020*/filename.2020*.gz
답변1
LC_ALL=C로 설정한 후 grep -P 및 zgrep이 이제 작동합니다.
$ export LC_ALL=C
$ zgrep --color='auto' -P -n "[\x80-\xFF]" yyyy/yyyymmdd/filname.yyyymmdd.gz