如何 grep 精确匹配具有非字母字符的字符串?

如何 grep 精确匹配具有非字母字符的字符串?

所以下面的 grep 匹配 2 行。

grep -w 1.2.3.4 testfile.csv 
1.2.3.4,Jim,Jonson,000000
1.2.3.4.5,George,Doe,FFFFF

我怎样才能让它完全匹配并且只匹配特定的单词?仅在此示例中1.2.3.4
让我们假设开头或逗号分隔符旁边可能出现空格,如果可能的话,我希望这是跨平台 grep。

答案1

正如所指出的唐克里斯斯蒂在评论中。您的情况的问题是尝试匹配的模式1.2.3.4确实不是匹配满足条件的单词-w

如果GNUgrep支持,请使用 PCRE 模式。使用积极的前瞻

grep -P '^1\.2\.3\.4(?=,)' file

或按照推荐桑迪普不使用 PCRE 就可以

grep '^1\.2\.3\.4,' file

另外,为了更精确的字符串匹配,awk更容易做到

awk -F, -v var="1.2.3.4" '$1==var' file

相关内容