次の形式の表形式のデータを含むファイル、たとえば「bigfile」があります。
a1 b2 a3 1
b1 a2 c3 0
... 等々。
Linuxマシンに組み込まれている「ソート」プログラムを使用したいので、このファイルを4番目のフィールド(数値)でソートし、次に最初のフィールドで同時にソートします。私はmanページを数回調べましたが、思いついたのは、
sort -n -k4,4 -k1,1 bigfile
「ソート」に自分のやりたいことをさせる方法はありますか、それとも独自のカスタムプログラムを作成する必要がありますか?
ありがとうございました。
マンページから:
POSはF [.C] [OPTS]です。ここで、Fはフィールド番号、Cはフィールド内の文字位置です。どちらもオリジン1です。-tも-bも有効になっていない場合、フィールド内の文字は前の空白の先頭からカウントされます。 OPTSは、1つ以上の単一文字の順序付けオプションであり、そのキーのグローバル順序付けオプションをオーバーライドします。キーが指定されていない場合は、行全体をキーとして使用します。
sort -k4,4n -k1,1 bigfile
それをするべきです。
別のオプションはsort -k1,1 bigfile | sort --stable -n -k4,4
安定ソートとは、4番目のフィールドのタイが初期位置によって解決されることを意味します。初期位置は、ソートの最初のパスによって最初のフィールドに設定されます。