在特定的情况下一次 grep 多个字符串

在特定的情况下一次 grep 多个字符串

我想要grep以下字符串的确切顺序。

x*/\*y\*/\*z\*/\*w\*

我该怎么做?

grep x*/\*y\*/\*z\*/\*w\* <file>-> 不起作用

输入示例

xvg/cyv/dgzfdre/rwt 
avg/cyv/dgzfdre/rwt 
x/y/z/w 

所需输出

xvg/cyv/dgzfdre/rwt 
x/y/z/w 

答案1

这实现了您似乎需要的内容。

$ cat testfile
xvg/cyv/dgzfdre/rwt
avg/cyv/dgzfdre/rwt
x/y/z/w
$ grep 'x.*/.*y.*/.*z.*/.*w' testfile
xvg/cyv/dgzfdre/rwt
x/y/z/w
$

你的grep x*/\*y\*/\*z\*/\*w\* <file>不起作用,因为它正在寻找零个或多个x字符,后跟一个/,后跟一个*字符,紧接着一个y字符[等等]。

答案2

*s 是正则表达式中的魔术字符,表示“零个或多个前面的项目”。你需要逃离他们:

grep 'x\*/\*y\*/\*z\*/\*w\*' /path/to/file

相关内容