파일 이름을 오름차순으로 표시하는 파일 목록을 만들어야 합니다. 내 파일 이름에는 파일 패턴이 있습니다: 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.*
모든 관련 파일 이름과 일치하고 그 외에는 아무것도 일치하지 않는다고 가정하면 위 명령은 파일 이름을 사전식 순서로 각각 한 줄에 인쇄합니다. 이는 원하는 대로 보입니다.