「あの文言どこのファイルにあったっけな」
「検索して見つけたファイルをすぐに開きたいな」
そんなときに役立つコマンドをご紹介いたします(備忘録)
全文検索コマンド(コピペで使えるヨ)
$ find ./ -type f -print | xargs grep "hogehoge"
プロジェクトを行なっているディレクトリに移動して、検索したいワードをhogehoge部分に入れると対象のファイルをフルパスで表示してくれます。
それでは一つ一つ紹介していきます。
findコマンド
場所を指定してファイルを検索するコマンドです。オプションを指定することで細かく、検索内容を指定することができます。
findの後にファイル名を指定することで特定のファイルを検索することができます。今回は「./」としています。このようにすることで現在いるディレクトリ以下にあるデータに対して検索をかけることができます。
オプション
- -type f : 検索対象をファイルに限定します。ディレクトリは「d」
- -print : 見つけたファイルをフルパスで出力します。このオプションをつけておくことで対象のファイルを現在いるディレクトリから一発で開けます。
xargsコマンド
標準入力やファイルからリストを読み込み、コマンドラインを作成して実行するコマンドです。先ほどのfindコマンドを「|(パイプ)」でつなぎます。
こうすることでfindコマンドで指定したすべてのファイルに対してxrags以降のコマンドを実行するよー的な意味合いです。
grepコマンド
ファイル内の文字を検索するコマンドです。macでいうCommand + F的なやつです。
grep "foobar"とすることでfoobarを検索できます。
まとめ
まとめに入ります。
「findコマンドにディレクトリ以下のデータを指定して(./)検索対象をファイルにして(-type f)フルパスで指定する(-print)
指定したディレクトリ以下のすべてのファイルに対して(xargs)「hogehoge」を検索する(grep "hogehoge")」
得られた結果はフルパスで表示されるのでopen ./foo/bar/baz.txtみたいな感じで一発で開けます。
$ find ./ -type f -print | xargs grep "hogehoge"