2 つの grep ステートメントを組み合わせて、その結果を一緒に表示するにはどうすればよいですか?

2 つの grep ステートメントを組み合わせて、その結果を一緒に表示するにはどうすればよいですか?

もし私がそうするなら

   grep "MyVariable = False" FormA.frm

   ... result1

   grep "MyVariable = True"  FormA.frm

   ... result2

grepコマンドを次のように記述するにはどうすればよいでしょうか。

   grep "MyVariable = False" OR "MyVariable = True" FormA.frm

答え1

本当に必要なのは「AND」ではなく「OR」です。「AND」を使用すると、論理的には行は表示されません (行が「MyVariable = False...MyVariable = True」のような場合を除く)。

「拡張 grep」と OR 演算子 ( |) を使用します。

grep -E 'MyVariable = False|MyVariable = True' FormA.frm

答え2

使用すべき

grep "MyVariable = \(False\|True\)" FormA.frm

ここで、\|シーケンスは選択肢を意味し、区切り文字\(と は\)グループ化のために使用されます。

答え3

簡単にできる

grep -E "MyVariable = False|MyVariable = True" FormA.frm

答え4

すでに述べられたこととは別の方法で答えると...

-eオプションを複数回指定することで、grepに複数の一致を指定することもできます。

% grep -e "MyVariable = True" -e "MyVariable = False" FormA.frm
 ... result1
 ... result2

関連情報