特定の列で同じフィールド値を持つ行グループのソート

特定の列で同じフィールド値を持つ行グループのソート

次のテキストファイルがあります。

1 bob A
1 jim B
1 Kate A
1 Nancy C
1 bill A
1 Jason A
2 James B
2 fill B
2 cake C
2 lucky C
2 Lucy A
2 lily B

各グループ1と2のデータを3列で並べ替えるにはどうすればよいですか?出力は次のようになります。

1 bob A
1 Kate A
1 bill A
1 Jason A
1 jim B
1 Nancy C
2 Lucy A
2 James B
2 fill B
2 lily B
2 cake C
2 lucky C

Kate入力順に表示されるため、出力の前に表示されます。bill

列1には1、2から2000までの非常に大きな値があるため、行数を比較するときは単に特定の値と同じだけでなく、awk printも考慮します。

ベストアンサー1

sortファイルは、最初の列に基づいて数値順に、3番目の列に基づいてアルファベット順にソートされます。

sort -s -k1n,1 -k3,3 file

注:-sPOSIX仕様の拡張です。

おすすめ記事