こんにちは、さるまりんです。
今日はgrep
コマンドです。
grep
はファイル内の文字列検索で利用されます。
grep [検索文字列] [ファイル名]
これで複数の文字列のAND検索とOR検索する方法です。
AND検索
AND
検索は結果を|
(パイプ)でつなぐことで絞り込み実現します。
grep [文字列1] ファイル名 | grep [文字列2]
上記で文字列1と文字列2を含む行が抽出されます。
例えば以下のようなファイルaaa.txtがあったとします。
090-xxxx-yyyy
090-1111-aaaa
080-aaaa-1111
070-0000-bbbb
06-aaaa-bbbb
06-1111-bbbb
03-bbbb-1111
078-cccc-0000
電話番号みたいな文字列が各行に記録されています。
この中から06
とaaaa
の両方を含む行を抜き出すには以下のようにします。
$ grep 06 aaa.txt | grep aaaa
06-aaaa-bbbb
06
とaaaa
の両方を含む1行が抽出されました。
OR検索
OR
検索はgrep
の-e
オプションを使います。
grep -e [文字列1] -e [文字列2] [ファイル名]
上記で文字列1か文字列2のいずれかか両方を含む行を抽出します。
AND
検索の例で使ったファイルaaa.txt
から070
、080
、090
のいずれかを含む行を抽出してみます。
$ grep -e 070 -e 080 -e 090 aaa.txt
090-xxxx-yyyy
090-1111-aaaa
080-aaaa-1111
070-0000-bbbb
上記の4行が抽出されました。
同様のことはegrep
コマンドを使っても実現できます。
検索したい文字列を|
(パイプ)でつないで列挙します。
egrep '文字列1|文字列2' ファイル名
上記の例と同様のことをegrep
で実行するとこうなります。
$ egrep '070|080|090' aaa.txt
090-xxxx-yyyy
090-1111-aaaa
080-aaaa-1111
070-0000-bbbb
grep
(egrep
)は正規表現を使ってとても便利に利用できます。
正規表現、真剣に勉強しなくては。
読んでくださってありがとうございます。
それではまた!