lsに下線文字を最初にソートさせるにはどうすればよいですか?

lsに下線文字を最初にソートさせるにはどうすればよいですか?

同じレベルの他のファイルやディレクトリと区別したい場合は、アンダースコアプレフィックスを使用してファイルとディレクトリに名前を付けることができます。たとえば、Windows と Mac でファイルの前にアンダースコアを付けると、ファイルは英数字で始まるファイルよりも上にソートされます。

私のインターネット検索はLC_COLLATEと現在のロケール(en_US)に関連していることがわかりました。大丈夫です。 en_USが期待どおりにソートされていない理由を本当に理解していなくても。

に基づいてICUコレートデモシーンロケールをen_US_POSIXに設定すると、間違いなく私が探しているソート順序があるようです。テストするには、サンプルデータを編集して下線を追加する必要があります。しかし、Linuxシェルに適用する方法がわかりません。

理想的には、lsが常に下線を最初にソートするようにbash設定で何かを設定できることを願っています。どうすればいいですか?

ベストアンサー1

小文字と大文字を混在させたくない場合は、ロケールをに設定してください。これにより、C数字順に文字が許可されます。_大文字と小文字の間。

$ LC_COLLATE=C ls    
BAR  FOO  _score  _under  hello  world
$ LC_COLLATE=en_US ls                    
BAR  FOO  hello  _score  _under  world

地域設定LC_MESSAGES(エラーメッセージ言語)、LC_CTYPE(文字セット)、LC_TIME(日付と時刻の形式)が便利です。しばしば値よりも多くの問題が発生するため、設定をお勧めしませんLC_COLLATELC_NUMERIC適切な辞書の順序付けはLC_COLLATE予想よりも複雑であり、正規表現で文字範囲を使用すると、あらゆる種類の奇妙な動作を引き起こす可能性があります。LC_NUMERICいくつかのプログラムは.

おすすめ記事