Grep为特定顺序的字符串

时间:2015-10-21 17:29:40

标签: linux search grep

我需要按指定顺序grep一个大文件的单词(实际上是一串字符)。我还需要字符串能够包含冒号“:”。例如,如果单词是“apple”,“banana”和“:peach”,我会得到一句话,“苹果樱桃香蕉凉:桃子”但不是“苹果:桃子樱桃香蕉凉”。我真的希望能够在其他grep命令中使用一个字符串而不是grep命令。我并不担心只搜索整个单词。

1 个答案:

答案 0 :(得分:1)

grep "apple.*banana.*:peach" file

e.g。

$ echo "apple cherries banana cool :peach" | grep "apple.*banana.*:peach"
apple cherries banana cool :peach
$ echo "apple :peach cherries banana cool" |grep "apple.*banana.*:peach"
$

非常简单的正则表达式。 “apple”,“banana”和“:peach”部分只是文字字符串。它们之间的.*是两个正则表达式运算符 - .将匹配任何字符,而*表示前一个匹配可以匹配0次或更多次。

本质上我们说按这个顺序找到这些文字字符串,它们之间有任意数量的字符(包括没有字符串,所以即使“applebanana:peach”也匹配。)