2016-10-04 87 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」