日付に基づいてログ名を一覧表示してファイルに保存する方法

日付に基づいてログ名を一覧表示してファイルに保存する方法

ログファイルがたくさんあります。そのうちのいくつかは回転します。彼らの名前をtxtファイルに入れたいとしましょう。

-rw-r-----   1 admin    staff    5120126 Apr 20 14:29 access.log00071
-rw-r-----   1 admin    staff    5121042 Apr 20 15:39 ccb_server12.log00021
-rw-r-----   1 admin    staff    5120069 Apr 20 16:58 access.log00072
-rw-r-----   1 admin    staff    5121929 Apr 21 11:35 ccb_server12.log00022
-rw-r-----   1 admin    staff    5126055 Apr 21 11:45 ccb_server12.log00023
-rw-r-----   1 admin    staff    5237640 Apr 21 11:46 ccb_server12.out00048
-rw-r-----   1 admin    staff    5120130 Apr 21 12:56 access.log00073
-rw-r-----   1 admin    staff    5120372 Apr 21 14:06 ccb_server12.log00024
-rw-r-----   1 admin    staff    5120055 Apr 21 15:33 access.log00074
-rw-r-----   1 admin    staff    5174157 Apr 21 15:40 ccb_server12.out00049
-rw-r-----   1 admin    staff    5120001 Apr 21 18:53 access.log00075
-rw-r-----   1 admin    staff    5120079 Apr 22 04:29 access.log00113
-rw-r-----   1 admin    staff    5120128 Apr 22 08:42 access.log00114
-rw-r-----   1 admin    staff    5120050 Apr 22 13:17 access.log00115
-rw-r-----   1 admin    staff    5120114 Apr 22 13:32 access.log00076

上記は私が試したログls -lrt です。ls -lrt | grep "Apr 22" > lognames.txt

したがって、レポートにこれらのログの名前が表示されます。また、このコンピュータはSolarisで実行されていることを追加したいと思います。

別の方法がありますか?

答え1

バッシュの場合ksh

ls -ltr | while read _{1..9};do 
    ((${#_9})) && echo "${_9}" >> "${_6}_${_7}.txt";
done

関連情報