파일 이름 순서 문제를 해결하는 방법은 무엇입니까?
예를 들어,
ls
생성된 파일은 다음과 같습니다.
basename1
basename11
basename12
basename13
[omitted]
basename2
basename20
basename21
....
basename3
질문
11-19는 2와 3 이전에 구문 분석됩니다.
답변1
다음을 사용하여 정렬할 수 있습니다.
ls basename* | sort -V
정렬을 위한 -V 옵션은 "버전"의 약어이지만 실제로는 "이름 및 번호"를 기준으로 정렬합니다. 이는 사용자가 찾고 있는 것 같습니다. 정렬 매뉴얼 페이지를 참조하십시오.
-V --버전 정렬
Sort by version name and number. It behaves like a standard sort, except that each sequence of decimal digits is treated numerically as an index/version number
그누 ls
:
ls -v
목록은 버전별로 정렬될 수 있습니다.
답변2
셸을 사용하면 옵션이나 glob 한정자를 사용하여 zsh
숫자로 glob을 정렬 할 수 있습니다.numericglobsort
n
print -rC1 basename*(n)
ls
glob 확장을 명령에 구체적으로 전달 하면 ls
자체 어휘 정렬이 수행되므로 해당 zsh
.
GNU 구현을 사용하면 해당 옵션을 사용하여 정렬을 비활성화 ls
할 수 있습니다 .-U
ls -ldU basename*(n)