これが「Unixでの英数字データの並べ替え」の質問の繰り返しだとは思わないでください。他の答えを見て、私の場合は少し違うと思います!
このようなデータがあります:
A 192
D 112
D 188
C 091
A 281
B 919
...最初の列1(アルファベット順)、次に列2(数値順)で並べ替えます。私は使用してみました:
sort -n -k1,2
...しかし、これにより、最初のフィールドは正しくソートされましたが、2番目のフィールド(1,10,1000,1002,1003ではなく、1000,1002,1003,10,1 ...)のソートは正しくありませんでした。
誰かが私が好きな方法でこれら2つの列をソートする方法を提案できますか?
次のように使用してみてください:-
sort -k1,1 -k4,4n
- -n:数値に従ってプログラムをソートします
- -k opts:指定された列番号を使用してデータ/フィールドをソートします。たとえば、オプション-k 2は、2番目の
列のデータ。オプション-k 3,3n -k 4,4nは、各列をソートします。最初
3列目、次に4列目をソートします。
これは動作するはずです:
sort -t "," -k1,1 -k2n,2 file