ls コマンドの結果を大文字と小文字を区別せずに出力する方法を見つけようとしています。
現在、ls コマンドの結果は次のとおりです。
Apple
Boy
Chart
Dock
apples
boys
charts
docks
私が欲しいのはこれです:
Apple
apples
Boy
boys
Chart
charts
Dock
docks
これは可能ですか?
ls コマンドの結果を大文字と小文字を区別せずに出力する方法を見つけようとしています。
現在、ls コマンドの結果は次のとおりです。
Apple
Boy
Chart
Dock
apples
boys
charts
docks
私が欲しいのはこれです:
Apple
apples
Boy
boys
Chart
charts
Dock
docks
これは可能ですか?
ls(少なくともGNU coreutilsバージョンを使用している場合;ls --versionそれを確認するために)現在のロケールに従ってファイル名をソートします。
利用可能なロケールのセットはシステムごとに異なります (locale -aリストについて) が、私のシステムでは次のようになります。
LC_COLLATE=en_US.utf8 ls
名前をaand のA前にband --並べ替えますが、探している順序と正確Bに一致しない場合があります。
これlsは、複数の列にファイルをリストする場合でも機能しますsort -f。
(特に、ロケールに依存したソートが ASCII 順で行われるように$LC_COLLATE設定しました。)C
結果を にパイプするだけsort -fです。
[Keith Thompson] の回答のフォローアップとして、Linux システムでテストしたところ、LC_COLLATE=C は機能しませんでしたが、LC_COLLATE="en_US.UTF-8" は機能しました。起動スクリプトに次のように記述します。
export LANG=en_US.UTF-8
export LC_COLLATE="en_US.UTF-8"
これは OS X では機能しませんでした。
# alias ll='(LC_COLLATE=en_US.utf8 && export LC_COLLATE && shopt -s nocaseglob && /bin/ls -alF --color=auto )'
# ll