简而言之:我的命令有问题,该命令应该向我显示包含以下两个表达式之一的行:“ king” ,“king's son” 。这是我到目前为止的去处:
grep -w "king's son\|king" frog.txt
它确实有效,但是它包括“king's” ,这是不应该发生的。
添加
-v grep "king's"
无效,因为它也会删除“国王的儿子” 。我正在使用Virtual Box Machine上安装的Ubuntu 32位系统。
最佳答案
这应该做到:
grep -E "(^|[ \t])(king|king's son)([ \t]|$)" frog.txt
它使用组
(^|[ \t])
和([ \t]|$)
来匹配单词分隔符或行的开头/结尾。关于linux - Linux->终端命令-> Grep->与符号有关的表达式/异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30549548/