2015-10-21 62 views
0

我需要以指定的顺序grep一个大文件的单词(真的是一串字符)。我还需要能够包含冒号“:”的字符串。例如,如果单词是“苹果”,“香蕉”和“桃子”,我会得到这样一句话:“苹果樱桃香蕉酷:桃子”,而不是“苹果:桃子樱桃香蕉酷”。我真的希望能够在其他grep命令中使用一个字符串而不是grep命令。我不关心只搜索整个单词。grep为特定顺序的字符串

+1

您是否尝试过使用正则表达式像这样:“苹果。*香蕉。*:桃子”? – AKJ88

回答

0

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

例如,

$ 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" 
$ 

很简单的正则表达式。 “苹果”,“香蕉”和“桃子”部分只是文字串。它们之间的.*是两个正则表达式运算符 - .将匹配任何字符,并且*表示前一个匹配可以匹配0或更多次。

从本质上讲,我们是说发现这个顺序对这些文字字符串,与任意数量的他们之间的字符(包括没有,所以即使“applebanana:桃子”会匹配。)

相关问题