6

次のようなエントリを含むファイルtmp.txt(実際にはbashコマンドの出力)があります。

    ...
ammp            0                1.03683
ammp            10               2.69954
ammp            1                1.05712
ammp            11               2.70339
ammp            12               2.70339
ammp            2                1.88586
ammp            3                2.50103
ammp            4                2.64734
ammp            5                2.67462
ammp            6                2.68097
ammp            7                2.68631
ammp            8                 2.6904
ammp            9                2.69517
applu           0               0.678798
applu           10              0.922213
applu           1               0.901234
applu           11              0.923596
applu           12              0.923596
applu           2               0.901657
applu           3               0.903176
applu           4               0.908912
applu           5               0.913879
applu           6               0.914885
applu           7               0.915516
applu           8               0.917368
applu           9               0.920753
apsi            0                1.09037
apsi            10               2.20494
apsi            1                1.16651
apsi            11               2.24381
apsi            12               2.24381
apsi            2                1.49532
apsi            3                1.79137
apsi            4                1.79581
apsi            5                1.79601
apsi            6                1.80062
apsi            7                1.91269
apsi            8                 1.9579
apsi            9                2.00872
    ...

最初のフィールド、次に2番目のフィールドに従って並べ替えます。問題は、最初のフィールドには辞書式ソート、2番目のフィールドには数値ソートが必要なことです。

私は以下を試しました:

cat tmp.txt | sort -k1,2

両方のフィールドを辞書式に並べ替えます

cat tmp.txt | sort -k1 | sort -n -k2

2番目のソートは最初のソートを台無しにします。

cat tmp.txt | sort -s -k1.2n

2番目のフィールドを数値的に実行する安定ソートと思われます。動作せず、2番目のフィールドを辞書式に並べ替えます...

アイデア??

4

1 に答える 1

9

試す:

sort -k 1,1 -k 2,2n file

これにより、最初のフィールドがアルファベット順に並べ替えられ、次に2番目のフィールドが数値で並べ替えられます。

sort マニュアルページにはいくつかの例があります。

于 2012-12-11T08:42:47.167 に答える