我想从大量 .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