input_file(列はタブで区切られ、列4にのみスペースが含まれています)
入力する
A B C D;<>X;<>Y 0
C D E F;<>Z;<>X 1
出力
A B C D;<>X;<>Y;<>apple=0
C D E F;<>Z;<>X;<>apple=1
input_fileの最後の列を2番目から最後の列とマージし、最後の列の値を「;」で区切りたいと思います。 2番目から最後の列には「apple =」というラベルがあります(4番目の列と同様)。入力ファイル)。したがって、output_fileには1つの列がありません。フォーマットされた出力ファイルの整合性も維持する必要があります。すべての列はタブで区切られていますが、列4の値にもスペース(D; <> X; <> Y)があるためです。
したがって、入力ファイルのすべてのフィールド区切り文字を保持し、2番目の列の最後の列値のみをラベル(apple =)とマージしようとします。ありがとう
ベストアンサー1
最後のフィールドを変更し、最後のフィールドを削除します。
$ awk '{$(NF-1)=$(NF-1)";<>apple="$NF;$NF="";}1' OFS="\t" file