次の 2 つのファイルがあります。
ファイルA:
Name,Site Name,Product UPEI,Product Name,NMS Flag,Product Model, SW
ファイルB:
NE_Name SW
ABC 4.4
ASD 4.3
... ...
fileAは1行だけで構成され、複数のヘッダー(名前、サイト名など)があります。そして、fileBには膨大な数の行を含む2つのフィールドがあります。
これら2つのファイルを結合したいと思います。
結果ファイル:
Name,Site Name,Product UPEI,Product Name,NMS Flag,Product Model, SW
ABC,,,,,,4.4
ASD,,,,,,4.3
したがって、出力ファイルにはfileA内のすべてのヘッダーがあり、「Name」(fileBから取得した「NE_Name」値を使用)と「SW」(fileBから取得した「SW」値を使用)という拡張フィールドがあります。
上記の2つの入力ファイルからこの出力ファイルをどのように取得できますか?
ベストアンサー1
1つの方法は次のとおりですawk
。
$ awk -F, 'NR==1{nf=NF-1; print $0; FS=" "} \
NR>2{printf("%s%.*s%s\n",$1,nf,",,,,,,,,,,,,,,,,,",$2)}' fileA fileB
Name,Site Name,Product UPEI,Product Name,NMS Flag,Product Model, SW
ABC,,,,,,4.4
ASD,,,,,,4.3
重要なのは、最初のファイルから取得した数字で区切られたprintf
fileBの最初と3番目のフィールドを印刷することです。,
nf=NF-1