我想通过grep获取包含已定义单词的行。
编辑:解决方案是this一个。
我知道我可以使用-w选项,但它似乎没有做到这一点。
例如:包含由标点符号分隔的我定义的单词的每个单词。如果我寻找狗,它会告诉我不仅包含狗词,还包括cats.dogs,cats-dogs等的行。
# cat file.txt
some alphadogs dance
some cats-dogs play
none dogs dance
few dog sing
all cats.dogs shout
用grep:
# cat file.txt | grep -w "dogs"
some cats-dogs play
none dogs dance
all cats.dogs shout
期望的输出:
# cat file.txt | grep -w "dogs"
none dogs dance
你知道任何可以让你得到全部信息的解决方法吗?我用\ b或\<进行了测试结果为阴性。
谢谢, Eudald
答案 0 :(得分:1)
在已安装的Value
的任何版本中使用字边界锚点
grep
此regular-expressions页面的摘录
锚
[..]锚点与任何字符都不匹配。他们匹配一个位置。
grep '^dogs$' file.txt
匹配字符串的开头,^
匹配字符串的末尾。[..]
答案 1 :(得分:0)
尝试使用-x参数:
grep -x dogs file.txt
来自grep
手册:
-x, - line-regexp
仅选择与整行完全匹配的匹配项。 (-x由POSIX指定。)
注意:将cat
输出管道传输到grep
bigint
无效