2

gnu-coreutils sort コマンドを使用して、最小値から最大値への最初の値に基づいてテーブルを並べ替えようとしています。

私のテーブルは次のようになります。

file.txt

100,0.8,0.323, ... some more data
2,0.323,0,323, ...
4, ...
53, ...
.
.
121, ...

私は次のことを試しました:

sort -n -k 1 file.txt

しかし、私は次のようなものを得ます...

10,0,10,10
100,9,1,10
101,9,2,11
102,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9,9,18
21,1,10,11
32,2,10,12
43,3,10,13
54,4,10,14

論理的な番号順が必要です。

テッド。

4

1 に答える 1

1

の正しい呼び出しは次のsortようになります

$ sort -n -t , -k 1,1 file.txt

説明:

  • -n 数値で並べ替える
  • -t , コンマはフィールド区切り文字です
  • -k 1,1 最初のフィールドでソート
  • file.txt入力ファイル

上記のプログラムを呼び出すと、

10,0,10,10
21,1,10,11
32,2,10,12
43,3,10,13
54,4,10,14
100,9,1,10
101,9,2,11
102 ,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9,9,18

--debugフィールドで並べ替える場合、オプションを使用すると、並べ替えが期待どおりに機能することを確認するだけで非常に便利です。

于 2011-12-02T01:22:39.413 に答える