このエントリーをはてなブックマークに追加


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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-06-03 (金) 22:58:33