使用'grep'搜索文本文件中模式组合的方法是什么?
比方说,比如说我正在寻找“顺便说一句”和其他可能的组合,比如“方式”和“方式”
感谢。
答案 0 :(得分:2)
Awk是这个的工具,而不是grep。在一行:
awk '/by/ && /the/ && /way/' file
整个文件:
gawk -v RS='\0' '/by/ && /the/ && /way/' file
请注意,这是搜索3个单词,而不是搜索这3个单词的组合,它们之间有空格。这就是你想要的吗?
如果您需要更多帮助,请提供更多详细信息,包括样本输入和预期输出。
答案 1 :(得分:1)
最简单的方法可能是使用正则表达式。但这也有点错误:
egrep '([ ]*(by|the|way)\>){3}'
这样做是为了匹配你的三个单词组,在单词前面留空格
使用它(如果有的话)并强制它成为一个完整的单词(因此最后是\>
)并匹配该字符串,如果该组中的任何单词出现三次。
运行它的示例:
$ echo -e "the the the\nby the\nby the way\nby the may\nthe way by\nby the thermo\nbypass the thermo" | egrep '([ ]*(by|the|way)\>){3}'
the the the
by the way
the way by
正如已经说过的那样,这会对the the the
产生一种“错误”的肯定,但如果你能接受它,我建议你这样做。