複数のテキストファイルから特定の文字列を検索する方法

複数のテキストファイルから特定の文字列を検索する方法。

参考url:
Linuxコマンド逆引き大全

テキスト・ファイルから特定の文字列を含む(論理)行を抜き出すには,「grep」コマンドを用いる。grepの後に検索したい文字列を指定し,さらにその後に検索対象とするファイルを指定する。

$ grep "Linux" target_file

検索結果は標準出力に出てくるので,検索結果をファイルに残したい場合はリダイレクトを用いる。

$ grep "Linux" target_file > result

また,正規表現を用いることにより,「yyyy/mm/dd」のフォーマットで表記されている日付も探せる。正規表現を用いる場合は,「-e」オプションを付ける。

$ grep -e "[0-9]{4}/[0-9]{2}/[0-9]{2}" target_file

応用:拡張子が”php”であるファイルについて,文字列”Linux”を探す

$ find . -type f -name "*.php" | xargs grep "Linux"

findで特定のファイルを絞り込んだ後に,「xargs」コマンドでファイル名のリストを作成し,grepでそれらファイルの検索を行う。

「xargs」コマンドについてはこちら

応用:検索する際,大文字・小文字を区別しない

$ grep -i "LiNuX" target_file

“Linux”,”linux”,”LINUX”など大文字・小文字を区別せずに検索結果として扱われる。