ls'の-vフラグ(バージョンによって、すなわちソート)を達成するためのポータブル方法はありますか?

StackOverflow https://stackoverflow.com/questions/1481824

質問

私は、私が唯一の標準化された機能に依存したいのですが、いくつかのビルドスクリプトに取り組んでいます。 私は、バージョンによっていくつかのファイルをソートする必要があります。ファイルは、バー-1であると言う。{0,2,3}バー11。{0,2,3}

デフォルトでは、lsが私を与えます:

bar-1_0
bar-11_0
bar-11_2
bar-11_3
bar-1_2
bar-1_3

私が欲しいのは簡単 'は-v LS' を使用して取得

bar-1_0
bar-1_2
bar-1_3
bar-11_0
bar-11_2
bar-11_3

問題は、 'LS -v' ではありません標準のです。私がすることができても、標準のソートのも、私が欲しいのオプションに欠けているようですスペックの古いバージョンを見ています。

誰もが自分自身のソート・ルーチンを書くの短いこの効果を達成するための移植可能な方法を提案することはできますか?

おかげで、 リス

役に立ちましたか?

解決

sort -n -t- -k2は、あなたがやりたいようです。 -nはあなたの数値(すなわち、アルファベットではない)の並べ替えを提供します。 -t--するフィールドセパレータを設定し、-k2は、第2のフィールド、すなわち、バージョン番号を選択します。

私のsortは、Ubuntuの上で、でも正しくアンダースコアとパートを行いますが、私はそれが標準であるかはわかりません。確かに、あなたはメジャーバージョンで、その後、最初のマイナーバージョンによって並べ替えることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top