このコマンドを使用して、特定の文字列を含むディレクトリ内のすべてのファイルを見つけます。
grep -lir "string" path_to directory
はい
grep -lir "users" /var/www/mysite
このコマンドは、文字列 "users"を含む指定されたディレクトリ内のすべてのファイルを表示します。しかし、変更された日付に基づいて最新の項目から古い項目の順に並べ替えたいと思います。
助けが必要ですか?
答え1
最初にそのオプションを使用してZ
から、もう一方の端に-0オプションを持つxargsは、ファイル名をキャプチャして計算し、タイミング情報をソートおよび削除して、ソートされた最新の最初のリストを表示します。
grep -Zlir users /var/www/mysite | xargs -0 -r stat --format='%Y+%n' | sort -t+ -k 1,1nr | cut -d+ -f2-
答え2
そしてzsh
:
print -rl ./**/*(.De_'grep -qi "string" $REPLY'_om)
これは以下を使用します。グローバル予選.
含まれている通常のファイル()のみを選択しstring
(つまり、式e_'grep -qi "string" $REPLY'_
から返されたグローバル結果true
)om
、それをソートして最終結果をソートしますmtime
(最新のエントリから)。D
隠しファイルを検索したくない場合は、削除してください。