ファイルを並べ替えますが、行のペアを一緒に保ちます。

ファイルを並べ替えますが、行のペアを一緒に保ちます。

構造体エントリを含むファイルがあります。

a1;b1;c1;
d1;e1;f1;g1
a2;b2;c2;
d2;e2;f2;g2

など。

このファイルをgでソートしたいのですが、そのgにabcを保持したいと思います。コマンドラインでこれを行うための良い方法はありますか?今私が考えることができるのは、やや複雑なPerlスクリプトを書くだけです。

ベストアンサー1

行がペアで提供され、最初の行に3つのフィールドがあり、2番目の行に4つのフィールドがある場合(2番目の行には「g」値が含まれています):

$ sed -n 'N;s/\n//;p' your_file \
   | sort -t';' -k7 \
   | perl -F';' -ane '$,=";";print @F[0..2],"\n";print @F[3..$#F]'

このsedセクションでは、2つの連続した行を結合し、sort7番目のフィールドの入力をソートし、最後;perl各行を2つの部分に分割します。 1つには3つのフィールドがあり、もう1つには4つのフィールドがあります。

おすすめ記事