[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.:


답변

간단한 것을 위해 lssort 와 결합 할 수 있습니다 . 파일 이름 목록 :
ls -1 | 종류

역순으로 정렬하려면 :
ls -1 | 정렬 -r


답변

lsfrom coreutils은 기본적으로 로케일 인식 정렬 을 수행 하므로 경우에 따라 놀라운 결과를 생성 할 수 있습니다 (예 : 및 에서 %foo정렬 ). ASCIIbetical 정렬을 원하면 다음을 사용하십시오.barquuxLANG=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가 없으면 항목을 알파벳순으로 정렬합니다.