[unix] Unix의 ‘ls’이름순 정렬
ls 목록을 이름으로 정렬 할 수 있습니까 ?
답변
My ls는 기본적으로 이름별로 정렬됩니다. 당신은 무엇을보고 있습니까?
man ls
상태 :
List information about the FILEs (the current directory by default). Sort entries alpha‐betically if none of -cftuvSUX nor --sort is specified.
:
답변
간단한 것을 위해 ls 를 sort 와 결합 할 수 있습니다 . 파일 이름 목록 :
ls -1 | 종류
역순으로 정렬하려면 :
ls -1 | 정렬 -r
답변
ls
from coreutils
은 기본적으로 로케일 인식 정렬 을 수행 하므로 경우에 따라 놀라운 결과를 생성 할 수 있습니다 (예 : 및 에서 %foo
정렬 ). ASCIIbetical 정렬을 원하면 다음을 사용하십시오.bar
quux
LANG=en_US
LANG=C ls
답변
* nix 도구의 장점은 다음과 같이 결합 할 수 있다는 것입니다.
ls -l | sort -k9,9
의 출력 ls -l
은 다음과 같습니다.
-rw-rw-r-- 1 luckydonald luckydonald 532 Feb 21 2017 Makefile
-rwxrwxrwx 1 luckydonald luckydonald 4096 Nov 17 23:47 file.txt
따라서 9,9
열을 열 9
까지 정렬 9
하여 파일 이름이됩니다. 중지 할 위치를 제공해야합니다.이 경우 동일한 열입니다. 열은로 시작합니다 1
.
또한 대 / 소문자를 무시 --ignore-case
하려면 sort 명령에 추가하십시오 .
답변
주의 사항 : “a”는 “Z”뒤에옵니다.
$ touch A.txt aa.txt Z.txt
$ ls
A.txt Z.txt aa.txt
답변
숫자 문자열 만 다른 파일은 구분 기호가 앞에 오는 조건에서이 번호로 정렬 할 수 있습니다.
이 경우 다음 구문을 사용할 수 있습니다.
ls -x1 file | sort -t'<char>' -n -k2
예:
ls -1 TRA*log | sort -t'_' -n -k2
TRACE_1.log
TRACE_2.log
TRACE_3.log
TRACE_4.log
TRACE_5.log
TRACE_6.log
TRACE_7.log
TRACE_8.log
TRACE_9.log
TRACE_10.log
답변
man 페이지에서 (bash ls 용) :
-cftuSUX 또는 –sort가 없으면 항목을 알파벳순으로 정렬합니다.