2 つの CSV ファイルの統合に取り組んでいます。
ファイルは、次の列によって作成されます。
最初の .csv:
SKU | Name | Quantity | Active
121 | Jablko | 23 | 1
別の .csv は次のように構成されます。
SKU | Quantity
232 | 4
121 | 2
Linuxで1.csvを2.csvのデータで更新したいのですが、最善の方法でそれを行う方法はありますか? パイソン?
awk ソリューション:
awk -F ' \\| ' -v OFS=' | ' '
NR == FNR {val[$1] = $2; next}
$1 in val {$3 = val[$1]}
{print}
' 2.csv 1.csv
入力フィールド区切り変数は正規表現として扱われますが、FS
出力フィールド区切りはプレーン文字列として扱われるため、パイプ文字の扱いが異なります。
awk 'BEGIN{FS=OFS="|"}NR==FNR{a[$1]=$2;next}{$3=a[$1]" "}1' second.csv first.csv