Grep-w在带有非拉丁字母的单词中查找部分匹配 [英] grep -w finds partial match in words with non-latin letters

查看:0
本文介绍了Grep-w在带有非拉丁字母的单词中查找部分匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用grep来精确匹配";er";,但是grep-w除了精确匹配之外,还在带有非拉丁字母的单词中找到了部分匹配,例如";ü";。下面的命令在";groüer";和";weier";中找到";er";。预期的行为是,grep仅在下面的字符串中找到&er";的完全匹配项,而没有部分匹配项。

echo "großer, Teller, der, er, weißer" | grep -w "er" 

我还尝试了导出LC_ALL=C,但没有解决问题。

推荐答案

如果您有GNUgrep,您可以使用

grep -oP "(*UCP)er"
grep -P "(*UCP)er"

(*UCP)PCRE谓词将使单词边界模式完全支持Unicode。

使用pcregrep也可以使用此方法,但需要指定-u选项:

pcregrep -ou '(*UCP)er'
pcregrep -u '(*UCP)er'

-u, --utf-8 use UTF-8 mode

o选项用于提取匹配项,而不是打印找到匹配项的整行。

这篇关于Grep-w在带有非拉丁字母的单词中查找部分匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆