대소문자 구분 없이 결과를 알파벳순으로 표시합니다. [중복]

대소문자 구분 없이 결과를 알파벳순으로 표시합니다. [중복]

ls저는 MacOS 11.6.1을 사용하고 있습니다. 출력에서는 대문자가 소문자 앞에 나타납니다. 예를 들어 다음과 같은 결과가 나타납니다.

$ ls

Blabla.txt
GAGAS.txt
asdf.txt
blabla.txt

그리고 갖고 싶은 것:

$ ls

asdf.txt
blabla.txt
Blabla.txt
GAGAS.txt

이것이 정상적인 기본 출력입니까 ls? 출력 번호 2를 어떻게 얻을 수 있습니까?

답변1

lsPOSIX는 출력에서 ​​파일 이름을 정렬해야 합니다.현재 로케일의 조합 순서에 따름.

시스템에 정렬 순서가 문자열 비교의 첫 번째 단계에서 대소문자를 무시하는 로케일이 없는 경우 다음으로 파이핑을 시도할 수 있습니다 sort -f.

ls -q | sort -f

( -q선택적으로 파일 이름의 제어 문자(줄 바꿈 포함)를 대체하여 파일 이름이 한 줄에 표시되도록 할 수 있습니다 ?(순서에 영향을 미칠 수 있음).

또는 zsh 쉘을 사용하려면 다음과 같이 사용하십시오.

lc() REPLY=$REPLY:l
print -rC1 -- *(o+lc)

바꾸다 ls. 즉, lc값을 $REPLY소문자로 변경하는 도우미 함수를 정의하고 이를 o전역적으로 확장된 정렬 함수로 사용합니다(대소문자를 구분하지 않는 비교와 반드시 동일할 필요는 없지만, 특히 일반 ASCII 텍스트의 경우 충분히 유사해야 합니다).

관련 정보