grep -rnw . -e "string_to_search"
このコマンドは、上記の入力文字列を受け入れ、その文字列を含む現在のディレクトリ(ドットで表示)のすべてのファイルを一覧表示します。
このコマンドの問題は、ファイルの内容もリストすることです。これは私の目的には必要ありません。
ファイル名だけが必要です。これを達成する方法はありますか?
それともこのタスクを最適化するより効率的な方法はありますか?
application.log_2023_07_*
たとえば、ログが形式で保存され、今日のログが形式で保存される7月のログでのみこのテキストを検索する必要があるとしますapplication.log
。
これを達成するより良い方法はありますか?
答え1
grep
フラグ-l
は、パターンに一致するファイル名に出力を制限します。-n
この場合は役に立たないため、フラグを削除することもできます。
grep -rlw . -e "string_to_search"
ファイルのサブセットからのみ検索するには、-r
ファイルを明示的に削除して一覧表示します。
grep -lw -e "string_to_search" application.log_2023_07_*