grepコマンドでパターンヒットがあったファイルのファイル名のみ表示する方法 †grepコマンドを使用してパターンヒットしたファイル名のみ表示したい場合は、-lオプションを使用します。 関連資料 †
grepの-lオプションを利用する †manコマンドでgrepを調べると -l オプションは以下のように記述されています。 -l, --files-with-matches 通常の出力はせず、このオプションを指定しなかったときに出力される 入力ファイルの名前を表示します。スキャン動作は最初のマッチで終了 します。 したがって、以下の構文でgrepコマンドを使用してパターンヒットしたファイル名のみ表示することができます。 grep -l パターン 対象 grepの-lオプション実行結果例 †実際に/etcディレクトリ内で実行してみます。 CentOSを検索パターンとして指定し /etc/* を検索した結果です。 [root@centos ~]# grep -l CentOS /etc/* /etc/grub.conf /etc/issue /etc/issue.net /etc/rc.sysinit /etc/redhat-release 上記のファイルには、CentOSが含まれています。 再帰的に調べたい場合は-rオプションを追加すればできます。 [root@centos ~]# grep -lr JDK /etc /etc/alternatives/jre/lib/security/java.security /etc/alternatives/jre/lib/i386/server/libjvm.so /etc/alternatives/jre/lib/i386/libjava.so /etc/alternatives/jre/lib/i386/libhprof.so /etc/alternatives/jre/lib/i386/client/libjvm.so /etc/alternatives/jre/lib/rt.jar /etc/alternatives/jre/lib/jvm.hprof.txt |