この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
目次
特定の文字列を含むファイルを検索する grep コマンド
Linux にて特定のファイル名や設定ファイルを探したいときに活躍するのが「grep」コマンドです。
大体の場所が分かっているが対象のファイルの明確な場所まで覚えていない!?ということはよくあることです。そのようなときに「grep」コマンドの使い方を知っていれば、多くの場合でファイルを特定できます。
今回は、grep コマンドでディレクトリ配下のファイルを grep(検索)するテクニックを確認してみます。
ディレクトリ配下の全ファイルで文字列を検索する方法
ファイル内にある文字列を検索する方法は、主に
・find コマンドとセットで grep コマンドを使って検索する
・grep コマンドのみを使って検索する
の2つあります。
2つのコマンドを紹介する理由としては、コマンドの実行したときに差異があるためです。「find コマンドとセットで grep コマンドを使って検索する」ときは隠しファイルも検索する。「grep コマンドのみを使って検索する」ときは隠しファイルは対象外となります。
では個別にコマンドの詳細を確認してみます。
find コマンドと grep コマンドをセットで文字列を検索する
まずは個人的におすすめする find コマンドとセットで、grep コマンドを利用する方法を記載します。
サンプルコマンド
find (検索対象のフォルダ) -type f | xargs grep (検索する文字列)
サンプルコマンドの実行例
1 2 3 4 5 |
root@hostname:# find ./ -type f | xargs grep test ./.bash_history:ln -s test.hogehoge.ini hogehoge.ini ./test1.rb:puts('test'); ./test2.rb:puts('test'); ./testtest.txt:testtest |
grep コマンドのみで文字列を検索する
次に grep コマンドのみを利用する方法を記載します。
サンプルコマンド
grep -r (検索する文字列) (検索対象のフォルダ)
サンプルコマンドの実行例
1 2 3 4 |
root@hostname:# grep -r test ./* ./test1.rb:puts('test'); ./test2.rb:puts('test'); ./testtest.txt:testtest |
さいごに
ファイル内の文字列を検索できる grep コマンドは大変便利な機能です。
find コマンドと組み合わせ方により、ファイルを探す時間が大幅に短縮されますので積極的に使ってみてください。
Linuxの知識については下記の本も参考になるので、スキルアップにお役立てください。