行ブロックのソート

行ブロックのソート

4行行を含むファイルがあります。以下は8行の内容を抜粋したものです。

6115 8.88443
6116 6.61875
6118 16.5949
6117 19.4129
6116 6.619 
6117 16.5979 
6118 19.4111
6115 8.88433  

私がやりたいことは、最初の列に基づいて各ブロックが4つの行で構成されるブロックをソートすることです。抜粋の出力は次のようになります。

6115 8.88443
6116 6.61875
6117 19.4129
6118 16.5949
6115 8.88433 
6116 6.619 
6117 16.5979 
6118 19.4111 

ベストアンサー1

1つのオプションは、次を使用することです。N行ごとに最初のシーケンス番号プレフィックスを追加します(あなたの場合はN = 4)。次に、デフォルトのソート列としてプレフィックスを入力しますsort

N = 4の例:

awk '{print int((NR-1)/4), $0}' file.txt | sort -n -k1,1 -k2,2 | cut -f2- -d' '

おすすめ記事