grep nonascii 不带 PCRE

grep nonascii 不带 PCRE

我想从大量 .gz 文件中 grep 非 ASCII 字符。但是,以下内容不适用于 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

相关内容