我正在使用以下命令来search和打印非ASCII字符:
grep --color -R -C 2 -P -n "[\x80-\xFF]" .
我得到的输出打印出非ASCII字符的行。 但是它不打印实际的Unicode字符。
有没有办法打印Unicode字符?
./test.yml-35- ./test.yml-36-- name: Flush Handlers ./test.yml:37: meta: flush_handlers ./test.yml-38- --
这是在搜索非ascii字符回答。 如过滤无效的utf8所示,真正的问题是您正在使用的正则表达式是针对单个字节,而UTF-8是一个多字节编码(因此模式必须覆盖多个字节)。
@ Peter O在后面的Q / A中的广泛回答似乎是使用Perl的最好的答案 。 grep是错误的工具。