大文字と小文字を区別せずに結果をアルファベット順に表示します。 [重複]

大文字と小文字を区別せずに結果をアルファベット順に表示します。 [重複]

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オプションで、ファイル名の制御文字(改行を含む)を置き換えて、ファイル名を1行に表示させることができます?(順序に影響を与える可能性があります)。

または、zsh シェルを使用するには、次のように使用します。

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

変えるls。つまり、lc値を$REPLY小文字に変更するヘルパー関数を定義し、それをグローバルoに拡張されたソート関数として使用します(大文字と小文字を区別しない比較と必ずしも同じではなく、特に一般的なASCIIテキストの場合は十分に似ている必要があります。 )。

関連情報