날짜를 기준으로 로그 이름을 나열하고 파일에 저장하는 방법

날짜를 기준으로 로그 이름을 나열하고 파일에 저장하는 방법

로그 파일이 많이 있습니다. 그 중 일부는 회전됩니다. 그들의 이름을 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

관련 정보