在shell中打印非ascii / unicode字符

我正在使用以下命令来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是错误的工具。