在 shell 中打印 non-ascii/unicode 个字符

Print non-ascii/unicode characters in shell

我正在使用以下命令搜索和打印非 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-
--

Searching for non-ascii characters. The real issue as shown in Filtering invalid utf8 中的回答是您使用的正则表达式是针对单个字节的,而 UTF-8 是多字节编码(因此模式必须涵盖多个字节) .

后者 Q/A 中的扩展 answer by @Peter O 似乎是最好的,使用 Perl。 grep 是错误的工具。