我需要按指定顺序为单词(实际上是字符串)创建一个大文件。我还需要字符串能够包含冒号“:”。例如,如果单词是“apple”、“banana”和“peach”,我会得到一行,上面写着“apple cherries banana cool:peach”,而不是“apple:peach cherries banana cool”。我真的希望能够有一个字符串,而不是其他grep命令中的grep命令。我不关心只搜索整个单词。

最佳答案

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:peach”也会匹配)。

关于linux - Grep以特定顺序输入字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33265650/

10-16 19:00