Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 从其他CSV文件中查找匹配值,然后将匹配值作为新列追加回CSV文件中_Bash_Shell_Csv - Fatal编程技术网

Bash 从其他CSV文件中查找匹配值,然后将匹配值作为新列追加回CSV文件中

Bash 从其他CSV文件中查找匹配值,然后将匹配值作为新列追加回CSV文件中,bash,shell,csv,Bash,Shell,Csv,我有2个CSV文件,其中包含500多行 1包含产品信息 ID, names, url, color, size p01, abc, uploads/abc.jpg, red, M P02, abz, uploads/abz.jpg, yellow, S p03, xyz, uploads/xyz.jpg, green, L p04, qwe, uploads/qwe.jpg, blue, XL 另一个包含与该产品相关的图像位置,一个产品有多个IMG ID, product_id, url 01

我有2个CSV文件,其中包含500多行

1包含产品信息

ID, names, url, color, size
p01, abc, uploads/abc.jpg, red, M
P02, abz, uploads/abz.jpg, yellow, S
p03, xyz, uploads/xyz.jpg, green, L
p04, qwe, uploads/qwe.jpg, blue, XL
另一个包含与该产品相关的图像位置,一个产品有多个IMG

ID, product_id, url
01, p01, uploads/item/asa.jpg
02, p01, uploads/item/aza.jpg
03, p01, uploads/item/dna.jpg
04, p01, uploads/item/adn.jpg
05, p02, uploads/item/bka.jpg
06, p02, uploads/item/bda.jpg
07, p04, uploads/item/cde.jpg
这样的结果

ID, names, url, color, size, thumb1, thumb2, thumb3, thumb4, ....
p01, abc, uploads/abc.jpg, red, M, uploads/item/asa.jpg, uploads/item/aza.jpg, uploads/item/dna.jpg, uploads/item/adn.jpg
P02, abz, uploads/abz.jpg, yellow, S, uploads/item/bka.jpg, uploads/item/bda.jpg
p03, xyz, uploads/xyz.jpg, green, L, 
p04, qwe, uploads/qwe.jpg, blue, XL, uploads/item/cde.jpg
那个么,我可以在航站楼做些什么呢

您可以使用awk:

awk 'BEGIN{FS=OFS=", "}
     NR==1{print "ID, names, url, color, size, thumbnails"; next}
     FNR==NR{$2=tolower($2); a[$2] = (a[$2]?a[$2] ", " $3:$3); next}
     FNR>1{print $0, a[tolower($1)]}' file2 file1
输出:

ID, names, url, color, size, thumbnails
p01, abc, uploads/abc.jpg, red, M, uploads/item/asa.jpg, uploads/item/aza.jpg, uploads/item/dna.jpg, uploads/item/adn.jpg
P02, abz, uploads/abz.jpg, yellow, S, uploads/item/bka.jpg, uploads/item/bda.jpg
p03, xyz, uploads/xyz.jpg, green, L,
p04, qwe, uploads/qwe.jpg, blue, XL, uploads/item/cde.jpg

第二个文件中的大写字母P是什么?您好,这是idYeah的产品,在我将OFS=“,”更改为OFS=“,”(删除空格)后,它工作得非常好。谢谢你,阿努巴瓦,你的awk是岩石!