Linux

【Linux】ファイル内に含まれる文字列を検索するコマンド

「この文字列を含むファイルってどこにあるの?」というときに使えるコマンドです。

ファイル内に含まれる文字列を検索するコマンド

コマンドの補足をしておきます。

find

ファイルやディレクトリを検索するコマンドです。

検索対象のディレクトリ
このディレクトリ配下を検索対象とします。.を指定すると、カレントディレクトリ配下が検索対象となります。

-name 検索対象のファイル
検索対象のファイルを指定します。ちなみに、ワイルドカードも使えます。例えば、'*.txt'とすると、.txtファイルのみを検索対象とします。

-type f
ファイルのみを検索対象とします。検索対象にディレクトリを含めたくない場合に使います。ディレクトリのみを対象とする場合は、-type dとします。

xargs

コマンド1 | xargs コマンド2のように使います。コマンド1の結果(標準出力)をコマンド2の引数として渡し、コマンド2を実行します。

今回のようにfind | xargs grepとすると、findで検索したファイルをgrepに渡し、grepでファイル内の特定の文字列を検索します。findでファイルを絞ってからgrepするので、大量のファイルの中から特定の文字列を検索することもできます。find -print0 | xargs -0 grepとすることで、空白文字が入ったファイル(例. hoge foo bar.txt)も検索対象にできます。

grep

対象のファイル内に含まれている文字列を検索します。

まとめ

Linuxでファイル内に含まれる文字列を検索するコマンドでした。

-Linux

© 2020 Reasonable Code