変更された日付でソートされた文字列とリスト名を含むファイルの検索

変更された日付でソートされた文字列とリスト名を含むファイルの検索

このコマンドを使用して、特定の文字列を含むディレクトリ内のすべてのファイルを見つけます。

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'_から返されたグローバル結果trueom、それをソートして最終結果をソートしますmtime(最新のエントリから)。D隠しファイルを検索したくない場合は、削除してください。

関連情報