web-dev-qa-db-ja.com

ターミナルで特定のテキストを含むファイルを見つける方法

特定の文字列を含むすべてのファイルを見つけたいのですが。ターミナルでどうしますか?

153
Svish
grep -r 'text goes here' path_goes_here
262

スポットライトを使う

mdfind "text goes here"
mdfind -onlyin /home/user/Desktop -live "live update"

見て忘れないでください:

man mdfind
26
user46046
  1. Ackを通して

brew install ack ack "text goes here"

  1. 見つけて

find . |grep "text goes here"

  1. Grepを通して

grep -RnslI "text goes here"

10
Anant Gupta

あなたはあなたの好みと必要性に従って以下のうちの1つを選ぶことができます。現在のディレクトリで再帰的に "async"というテキストを含むファイルを検索する必要があると仮定すると、以下のような方法のいずれかで検索できます。

grepを使う enter image description here

ackを使う enter image description here

3
karthiks

Ignacioの回答は素晴らしく、特定のテキストを含むファイルを見つけるのに役立ちました。私が直面していた唯一の問題は、このコマンドを実行すると、パターンが表示されなかったファイルを含むすべてのファイルが一覧表示されることでした。

No such file or directoryこれは、パターンを含まないファイルと一緒に表示されるものです。

代わりに、次のようにコマンドに-sを追加する場合:grep -lr "text pattern" ./ -s; grep -lr "text pattern" [PATH DIRECTORY] -sを使用すると、パターンを含むファイルのみが表示されます。

同様にgrep -nr "text pattern" ./ -sの場合; grep -nr "text pattern" [PATH OF DIRECTORY] -sコマンドを使用すると、ファイルと行番号、およびパターンの出現が出力されます。

私の理解が間違っている場合は修正してください。

参考:grepで「No such file or directory」エラーを出力しないようにするにはどうすればよいですか?

2
CP3O