複数のテキストファイルから特定の文字列を検索する方法
複数のテキストファイルから特定の文字列を検索する方法。
参考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”など大文字・小文字を区別せずに検索結果として扱われる。


