一部の列のデータを並べ替えるには?

一部の列のデータを並べ替えるには?

テキストファイルのデータを並べ替えようとしています。最初の列の2番目の位置にある数値データを最初の列の終わりまでソートしたいと思います。

たとえば、

Record Age Price 
A7859   15    10
B785    18    10
C696548 11    10
X7675    35    10
Y679     45    10
Z65      89    10 

答え1

最初の列の数字を数値の昇順で並べ替えるとしましょう。

$ sort -k 1.2,1n file
Record Age Price
Z65      89    10
Y679     45    10
B785    18    10
X7675    35    10
A7859   15    10
C696548 11    10

並べ替えオプションは、-k 1.2,1n「最初の列の2番目の文字のデータを使用して数値的に並べ替え」を意味します。これにより、最初の列の値が昇順にソートされます。-k 1.2,1nr逆順ソートに使用されます。

,1このオプションの引数は、sort行の残りの部分をソートキーとして使用するのを停止します。

列の並べ替えを少し整理するには、結果を次に渡しますcolumn -t

$ sort -k 1.2,1n file | column -t
Record   Age  Price
Z65      89   10
Y679     45   10
B785     18   10
X7675    35   10
A7859    15   10
C696548  11   10

関連情報