Reasonable Code

ほどよいコードを書きたい

Linux

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

投稿日:

「この文字列を含むファイルってどこにあるの?」

というときに使えるコマンドです。

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

上記コマンドの説明をしていきます。

find

対象のディレクトリ配下の対象のファイルを取得するコマンド。

検索対象のディレクトリ
ディレクトリ配下も検索対象です。ちなみに、カレントディレクトリは.、ホームディレクトリは~/と指定します。

-name 検索対象のファイル
ワイルドカードも使えます。例えば、'*.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

Copyright© Reasonable Code , 2018 All Rights Reserved Powered by STINGER.