搜索短语的组合

时间:2013-02-17 00:34:32

标签: grep

使用'grep'搜索文本文件中模式组合的方法是什么?

比方说,比如说我正在寻找“顺便说一句”和其他可能的组合,比如“方式”和“方式”

感谢。

2 个答案:

答案 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产生一种“错误”的肯定,但如果你能接受它,我建议你这样做。