在shell中打印非ascii / unicode字符

时间:2015-06-27 21:58:27

标签: linux shell unicode non-ascii-characters

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

1 个答案:

答案 0 :(得分:2)

Searching for non-ascii characters回答了这个问题。 Filtering invalid utf8 中显示的真正问题是您使用的正则表达式是单字节,而UTF-8是多字节编码(因此模式必须覆盖多个字节)。

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