CSVフォーマット出力

CSVフォーマット出力

私は次のような状況にあります。

ユーザー名と異なる値を含むcsv(シリアル番号に似ています)

Test; User; WKCVW432994; ; ;
Test; Users; Middlename; WEJDFH34992; ;
Test; Some; Weird; Guy; WEFDJJ23453;
Test; Some; Even; Weirder; Guy; WEFDJJ23453

本当に必要なのは、区切り文字を省略し、次のように名前の後とシリアル番号の前に静的値を貼り付けることです。

Test User StaticValue WKCVW432994
Test Users Middlename StaticValue WEJDFH34992
Test Some Weird Guy StaticValue WEFDJJ23453
Test Some Even Weirder Guy StaticValue WEFDJJ23453

私は姓を持つ人々のためにこれをしました。

awk -F";" '{k=$3; $3="StaticValue"; $4=k OFS $(NF--); print}' in.csv > out.csv

フルネームに必要な名前の長さ/セル数の違いが現在の問題です。

ベストアンサー1

必要なものは次のとおりです。

$ awk '{gsub(/;/,FS); $NF="StaticValue " $NF} 1' file
Test User StaticValue WKCVW432994
Test Users Middlename StaticValue WEJDFH34992
Test Some Weird Guy StaticValue WEFDJJ23453
Test Some Even Weirder Guy StaticValue WEFDJJ23453

上記のコードは、awkを使用するすべてのUNIXシステムのすべてのシェルで動作します。

おすすめ記事