自然に数字を揃えたいけど大文字のファイル/ディレクトリは一番上に並べ替えられません。それは可能ですか?
現在のls -lv
生産:
FOO/
bar/
ZEBRA.x
foo.x
foo-1.x
foo-2.x
foo-10.x
私はめちゃくちゃ|sort ...
でしたが、(1)私が試したすべてがうまくいかず、(2)--color=auto
私のコマンドからls
削除されました。色の解決策があると確信していますが、それが何であるかわかりません。
編集する
私のテストでは、LC_COLLATE=C ls -l
と同じことを行いますls -lv
。
ベストアンサー1
zsh
代わりに、いつでも'snumericglobsort
またはglob修飾子を使用できますn
。
$ locale title
English locale for Britain
$ print -rC1 -- *(Nn)
bar
FOO
foo-1.x
foo-2.x
foo-10.x
foo.x
ZEBRA.x
$ () { local LC_COLLATE=C; print -rC1 -- *(Nn); }
FOO
ZEBRA.x
bar
foo-1.x
foo-2.x
foo-10.x
foo.x
GNUの使用ls
:
ls -U -ld --color -- *(n)
ソートせずにls
glob 拡張子が指定した順序でファイルをリストします。zsh
Cロケールのように、ロケールのソート順が大文字と小文字を区別する場合は、次のこともできます。
$ locale title
ISO/IEC 14652 i18n FDCC-set
$ print -rC1 -- *(Nnoe['REPLY=$REPLY:l'])
bar
FOO
foo-1.x
foo-2.x
foo-10.x
foo.x
ZEBRA.x
式を評価してソートできるように、oe
glob修飾子を使用して名前を小文字に書き換えますか?l
o
e
REPLY=$REPLY:l
e
GNUの場合(バージョンソートのために)sort
は(大文字と小文字の区別の一致)と組み合わせること-V
ができますが、-f
ファイル名に改行文字が含まれておらず、ASCII文字としてのみ機能すると仮定します。
$ ls | LC_COLLATE=C sort -Vf
bar
ETE
FOO
foo.x
foo-1.x
foo-2.x
foo-10.x
ZEBRA.x
Á
ÉTÉ
á
été