11

ls コマンドの結果を大文字と小文字を区別せずに出力する方法を見つけようとしています。

現在、ls コマンドの結果は次のとおりです。

Apple
Boy
Chart
Dock
apples
boys
charts
docks

私が欲しいのはこれです:

Apple
apples
Boy
boys
Chart
charts
Dock
docks

これは可能ですか?

4

5 に答える 5

14

ls(少なくともGNU coreutilsバージョンを使用している場合;ls --versionそれを確認するために)現在のロケールに従ってファイル名をソートします。

利用可能なロケールのセットはシステムごとに異なります (locale -aリストについて) が、私のシステムでは次のようになります。

LC_COLLATE=en_US.utf8 ls

名前をaand のA前にband --並べ替えますが、探している順序と正確Bに一致しない場合があります。

これlsは、複数の列にファイルをリストする場合でも機能しますsort -f

(特に、ロケールに依存したソートが ASCII 順で行われるように$LC_COLLATE設定しました。)C

于 2013-08-24T00:29:06.693 に答える
4

結果を にパイプするだけsort -fです。

于 2013-08-24T00:18:54.897 に答える
1

[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 では機能しませんでした。

于 2015-04-08T01:54:08.227 に答える
0
# alias ll='(LC_COLLATE=en_US.utf8 && export LC_COLLATE && shopt -s nocaseglob && /bin/ls -alF --color=auto )'
# ll
于 2014-02-17T17:09:57.713 に答える