1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

全文検索【応用編】

Posted at

「あの文言どこのファイルにあったっけな」
「検索して見つけたファイルをすぐに開きたいな」
そんなときに役立つコマンドをご紹介いたします(備忘録)

全文検索コマンド(コピペで使えるヨ)

$ 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"
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?