2016-10-04 5 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または以下のように使用してください。

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"

関連する問題