1

2 つの CSV ファイルの統合に取り組んでいます。

ファイルは、次の列によって作成されます。

最初の .csv:

SKU | Name | Quantity | Active
121 | Jablko | 23 | 1

別の .csv は次のように構成されます。

SKU | Quantity
232 | 4
121 | 2

Linuxで1.csvを2.csvのデータで更新したいのですが、最善の方法でそれを行う方法はありますか? パイソン?

4

4 に答える 4

3

awk ソリューション:

awk -F ' \\| ' -v OFS=' | ' '
    NR == FNR {val[$1] = $2; next}
    $1 in val {$3 = val[$1]} 
    {print}
' 2.csv 1.csv

入力フィールド区切り変数は正規表現として扱われますが、FS出力フィールド区切りはプレーン文字列として扱われるため、パイプ文字の扱いが異なります。

于 2013-06-17T17:59:46.160 に答える
1
awk 'BEGIN{FS=OFS="|"}NR==FNR{a[$1]=$2;next}{$3=a[$1]" "}1' second.csv first.csv
于 2013-06-17T18:08:56.090 に答える