web-dev-qa-db-ja.com

他の列の値を連結してテーブルに列を追加する

次のようにいくつかのcsvテーブルがあります。

YEAR;MONTH;DAY;RES1;RES2
1971;1;1;1206.1;627
1971;1;2;1303.4;654.3
1971;1;3;1248.9;662
1971;1;4;1188.8;666.8

これから、MONTH列とDAY列の値を連結する新しい列を作成したいと思います。したがって、出力は次のようになります。

YEAR;MONTH;DAY;RES1;RES2;MONTHDAY
1971;1;1;1206.1;627;11
1971;1;2;1303.4;654.3;12
1971;1;3;1248.9;662;13
1971;1;4;1188.8;666.8;14
1
steve

ヘッダー行もマージされて満足しているので、これは簡単ですawk

_awk -F';' -vOFS=';' '{ $(NF+1)=$2$3 ; print}'
_

基本的に、_$2$3_で構成される新しいフィールド$(NF+1)を追加します。これは、これらのフィールドをマージします。 _OFS=';'_を使用すると、フィールドは_;_区切り文字で出力されます。

6
Stephen Harris