PCRE 없이 grep nonascii

PCRE 없이 grep nonascii

많은 수의 .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

관련 정보