Grep 搜索 Unicode 中包含大写字母的单词

Grep 搜索 Unicode 中包含大写字母的单词

经过一番搜索,我找到了一个grep命令,可以查找包含大写字母的单词,并列出它们而不重复:

grep -hoP "\w*[[:upper:]]+\w*" * | sort -u

然而,当涉及到包含诸如 之类的字符的单词时ê,grep 似乎只返回该字符之前的单词,而忽略该字符以及之后的任何内容。我的文本被编码为UTF-8,我猜问题出在我的搜索条件中。

对于几乎一无所知的人来说,是否有一个简单的解决方案grep

答案1

您可以使用grepwith-P来启用 Perl 正则表达式功能,然后将您的 Unicode 字符范围指定为一类字符,如下例所示(在下面的字符类中查找要替换的语言 Unicode)。

grep -oP '\w*[\x00-\x99]+\w*' infile

相关内容