タイムスタンプに基づいてgrepコマンドに表示されるファイル名をソートする方法は?

タイムスタンプに基づいてgrepコマンドに表示されるファイル名をソートする方法は?

次のコマンドでタイムスタンプに基づいてファイル名を取得するにはどうすればよいですか?

$ grep "exit 0" a*
a1.txt:+ exit 0
a2.txt:+ exit 0
a3.txt:+ exit 0
a4.txt:+ exit 0
a5.txt:+ exit 0

$ ls -latr 
-rw-r--r-- 1 user grp  83046 Oct 27 06:46 a5.txt
-rw-r--r-- 1 user grp  68108 Oct 27 07:59 a1.txt
-rw-r--r-- 1 user grp 159792 Oct 27 12:35 a2.txt
-rw-r--r-- 1 user grp 225703 Oct 27 16:41 a3.txt
-rw-r--r-- 1 user grp 246782 Oct 27 20:17 a4.txt

上記の出力が示すように、ファイルが生成されたときのタイムスタンプに基づいて出力を取得できません。これを達成する方法はありますか?

ベストアンサー1

ファイル名にスペース、タブ、改行($IFS変更されていない)、、、文字、または呼び出しが含まれていない場合は、次の操作?*行う必要があります。[-

grep -- "exit 0" $(ls -tr a*)

$()これをコマンド置換と呼びます。シェルが最初に実行され、次に出力ls -trを分割+グローブして、コマンドに渡されるファイルのリストを形成しますgrep

おすすめ記事