0

Bashは、コマンドを使用してファイルを並べ替える方法に本当に悩まされており、sortこれを回避する方法を見つけることができないようです。GNOMEを使用してファイルを名前で並べ替えると、希望どおりに表示されます。私は実際の順序で並べ替えようとしていますが、bashで並べ替えると、10と1がすべてを台無しにします。bashが私のファイルのサンプルをソートする方法は次のとおりです。

HeadsetBatteryBG_10@2x.png
HeadsetBatteryBG_11@2x.png
HeadsetBatteryBG_12@2x.png
HeadsetBatteryBG_1@2x.png
HeadsetBatteryBG_13@2x.png
HeadsetBatteryBG_14@2x.png
HeadsetBatteryBG_15@2x.png
HeadsetBatteryBG_16@2x.png
HeadsetBatteryBG_17@2x.png
HeadsetBatteryBG_2@2x.png
HeadsetBatteryBG_3@2x.png
HeadsetBatteryBG_4@2x.png
HeadsetBatteryBG_5@2x.png
HeadsetBatteryBG_6@2x.png
HeadsetBatteryBG_7@2x.png
HeadsetBatteryBG_8@2x.png
HeadsetBatteryBG_9@2x.png

ここで何が行われているのかわかりますが、このようなリストをbashで並べ替える場所はありますか?それがしているこの奇妙なことの代わりに、実際の番号順に数字を使って。

4

2 に答える 2

4

試す

sort -k2 -t_ -n [file]

これにより、フィールドセパレータ(-t_)として_を使用して、2番目のフィールド(-k2)で数値(-n)にソートされます。

( SuperUserから恥知らずに盗まれた)

于 2012-04-27T00:08:21.850 に答える
2

GNUソートを想定すると、さらに簡単になります。sort -V

   -V, --version-sort
          natural sort of (version) numbers within text
于 2012-04-27T01:47:26.557 に答える