我想 grep 查找“er”的精确匹配,但是 grep -w 除了精确匹配之外,还发现带有非拉丁字母(例如“ß”)的单词的部分匹配。下面的命令在“großer”和“weißer”中查找“er”。预期的行为是 grep 只找到下面字符串中“er”的精确匹配,没有部分匹配。
echo "großer, Teller, der, er, weißer" | grep -w "er"
我也尝试过导出LC_ALL=C
,但这并没有解决问题。
如果你有 GNUgrep
, 您可以使用
grep -oP "(*UCP)\ber\b"
grep -P "(*UCP)\ber\b"
The (*UCP)
PCRE 动词 will make\b
,字边界模式,完全支持 Unicode。
With pcregrep
,也可以使用这种方法,但是需要指定-u
option:
pcregrep -ou '(*UCP)\ber\b'
pcregrep -u '(*UCP)\ber\b'
-u, --utf-8 use UTF-8 mode
The o
选项用于提取匹配项,而不是打印找到匹配项的整行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)