テキストファイルから特定の文字列を検索するには、grep(グレップ)コマンドを使います。
grepコマンドは多くの機能がありますが、代表的な使い方を説明します。
テキストファイルから文字列を検索する
grepコマンドの標準的な使い方です。
指定した文字列が含まれた行を表示します。
grep 文字列 ファイル名
実行例
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
複数の文字列を指定して検索する
-eオプションを使って、複数の文字列を指定することもできます。
grep -e 文字列1 -e 文字列2 … ファイル名
実行例
$ grep -e root -e nobody /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
-Eオプション(拡張正規表現を使用)を使って、複数の文字列を指定することもできます。
grep -E '文字列1|文字列2| …' ファイル名
実行例
$ grep -E 'root|nobody' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
他のコマンドの実行結果から文字列を検索する
他のコマンドの実行結果を、|(パイプ)を通して検索することもできます。
別コマンド | grep 文字列
実行例 $ ifconfig | grep 127 inet 127.0.0.1 netmask 255.0.0.0
指定した文字列以外を検索する
-vオプションを使って、指定した文字列以外を検索することもできます。
grep -v 文字列 ファイル名
実行例
$ grep -v sbin /etc/passwd
root:x:0:0:root:/root:/bin/bash
ec2-user:x:1000:1000:Cloud User:/home/ec2-user:/bin/bash
正規表現を使った文字列検索は、以下の記事を参照してください。