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