我想要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