파일 이름을 기준으로 오름차순으로 파일 목록 만들기

파일 이름을 기준으로 오름차순으로 파일 목록 만들기

파일 이름을 오름차순으로 표시하는 파일 목록을 만들어야 합니다. 내 파일 이름에는 파일 패턴이 있습니다: FILE.YYYYMMDD.XXX

예를 들어:

$ ls -ltr
-rwxr-xr-x. 1 honle 1036 Apr 14  2020 FILE.20200102.001
-rwxr-xr-x. 1 honle 426832 Apr 14  2020 FILE.20200102.002
-rwxr-xr-x. 1 honle 426832 Apr 14  2020 FILE.20200102.003
-rwxr-xr-x. 1 honle 426832 Apr 10  2020 FILE.20200110.001
-rw-r--r--. 1 honle 426832 Apr 14 22:50 FILE.20200220.001
-rwxr-xr-x. 1 honle 1036 Apr 15 16:30 FILE.20200110.001

FILE.20200120.002가 FILE.20200220.001 앞에 입력되는 이유를 참고하세요. FILE.20200120.002는 FILE.20200220.001 이전에 처리되어 현재 디렉터리에 도달했습니다. 그렇기 때문에 YYYYMMDD.XXX 파일 이름 패턴을 기준으로 정렬해야 합니다.

원하는 출력:

FILE.20200102.001
FILE.20200102.002
FILE.20200102.003
FILE.20200110.001
FILE.20200120.002
FILE.20200220.001

생성 시간 파일의 순서가 잘못되어 ls -ltr을 사용할 수 없습니다. 어떻게 정렬할 수 있는지 아시나요? 저는 리눅스를 사용하고 있습니다.

감사해요

답변1

ls문제가 생성된 다중 열 형식이 아닌 단일 열의 파일 이름을 가져오는 것이라면 -1 ("minus one") 옵션을 사용할 수 있습니다 ls.

ls -1

파일 이름은 이름별로 정렬됩니다.


printf '%s\n' FILE.*

패턴이 FILE.*모든 관련 파일 이름과 일치하고 그 외에는 아무것도 일치하지 않는다고 가정하면 위 명령은 파일 이름을 사전식 순서로 각각 한 줄에 인쇄합니다. 이는 원하는 대로 보입니다.

관련 정보