2つのファイルがあります。
ファイル1.csv:
fruit_count|fruit_id
10|1234-5
20|1560-0
40|4500-0
100|6700-0
120|6770-8
110|5555-1
80|6666-9
15|7777-4
13|3333-2
ファイル2.csv:
fruit_id|fruit_name|n1|n2|
1234-5|strawbery||sweet|
4500-0|apple||sweet|
1560-0|orange||sweet|
6770-8|grape||sweet|
6666-9|peach||sweet|
7777-4|kiwi||sweet|
3333-6|blueberry||sweet|
9999-2|banana||sweet|
6666-3|grapefruit||sweet|
希望の出力:
ファイル3.csv
fruit_id|fruit_name|n1|n2|
1234-5|strawbery|10|sweet|
4500-0|apple|40|sweet|
1560-0|orange|20|sweet|
6770-8|grape|120|sweet|
6666-9|peach|80|sweet|
7777-4|kiwi|15|sweet|
3333-6|blueberry||sweet|
9999-2|banana||sweet|
6666-3|grapefruit||sweet|
したがって、両方のファイルにFruit_idが存在し、一致する場合は、file1.csvのFruit_count列の値を使用してfile2.csvのn1列を取得しようとします。一致する値がない場合、file3.csvのフィールドは空でなければなりません。
私が試したこと:
awk -F "|" 'NR==FNR{r[$2]=$1;next} {$3=r[$1]} 1' file1.csv file2.csv > file3.csv
そして:
awk -F"|" 'BEGIN{OFS="|"}
{
if (NR==FNR) {
r[$2]=$1;
next
}
if ($1 in r){
$3=r[$1]
}
print
}' file1.csv file2.csv > file3.csv