grepで指定した拡張子のみ対象としサブディレクトリも含む再帰検索する方法 †拡張子を指定して、さらにディレクトリ配下すべてを対象にgrepする方法を以下に記します。 関連記事 †
includeオプションで拡張子を指定(パターンを指定) †以下に記す構文により、指定したパターンのファイルのみ対象として検索します。 grep -r --include=パターン 検索文字列 ディレクトリ 尚、オプション-rでサブディレクトリも対象となります。 以下に実行例を記します。 includeオプションなしでcygwinというキーワードを検索~ †たくさん出力されてしまいます。 $ grep -r cygwin /etc/ /etc/csh.login: set term=cygwin /etc/defaults/etc/csh.login: set term=cygwin /etc/defaults/etc/DIR_COLORS:TERM cygwin /etc/defaults/etc/DIR_COLORS:TERM rxvt-cygwin /etc/defaults/etc/DIR_COLORS:TERM rxvt-cygwin-native <省略> 拡張子confのみ対象としてgrep †$ grep -r --include='*.conf' cygwin /etc/ /etc/nsswitch.conf:# see https://cygwin.com/cygwin-ug-net/ntsec.html#ntsec-mapping-nsswitch excludeオプションもあります †指定した拡張子のファイルのみ対象とする場合は、includeでしたが、除外するexcludeオプションもあります。 実行例
パターンなので拡張子だけではない †本資料では、よくあると思われる拡張子によるパターン検索例を記述しました。 $ grep -r --include='*bash*' cygwin /etc/ /etc/defaults/etc/skel/.bashrc:# a patch to the cygwin mailing list. /etc/defaults/etc/skel/.bash_profile:# a patch to the cygwin mailing list. /etc/skel/.bashrc:# a patch to the cygwin mailing list. /etc/skel/.bash_profile:# a patch to the cygwin mailing list. 以上、grepで対象ファイルを絞り込み、再帰検索する方法でした。 |