2016-10-04 91 views
-1
cat foo.txt | grep "a|b|x" 

foo.txt有a和x。需要帮助了解这个特定的grep如何工作

即使我假定要返回& x,此命令也不会返回任何内容。这个命令如何被解析?

cat foo.txt 
a 
x 
xcd $ cat foo.txt | grep "a|b|x" 
xcd $ 
xcd $ grep -E -w 'a|b|x' foo.txt 
xcd $ a 
     x 
+0

我得到了我正在寻找的答案,通过做这样的事情:grep -E -w'a | b | x'foo.txt – Ria

+0

请提供[mcve]并阅读[ask ]在这里获得更好的体验。注意'grep“a | b | x”'不能将管道理解为“ors”,而是理解为文字管道。所以你要么必须逃避它们,要么使用-E。 – fedorqui

回答

0

要grep OR你应该使用如下;

grep "a\|b\|x" foo.txt 

例如;

[email protected]:/tmp$ grep "a\|b\|x" foo.txt 
a 
x 

cat foo.txt | grep“a | b | x”命令查找“a | b | x”作为一个词

例如;

[email protected]:/tmp$ cat foo.txt 
a|b|x 
a 
x 
[email protected]:/tmp$ cat foo.txt | grep "a|b|x" 
a|b|x 

grep -E选项用于扩展正则表达式。这也是“grep OR”