Bash CSV操作,将值剪切到新列

Bash CSV操作,将值剪切到新列,bash,csv,Bash,Csv,我有一个包含数千行的CSV文件 itemid;name;quantity;price;Weight;Images 45214;"Banana";351;2;1;"http://domain.com/images/image1.jpg,http://domain.com/images/image2.jpg,http://domain.com/images/image3.jpg" 有没有简单的方法可以添加一列并剪切第一个图像路径(并删除保留的逗号),然后将其放入新列中。 因此,结果将是: item

我有一个包含数千行的CSV文件

itemid;name;quantity;price;Weight;Images
45214;"Banana";351;2;1;"http://domain.com/images/image1.jpg,http://domain.com/images/image2.jpg,http://domain.com/images/image3.jpg"
有没有简单的方法可以添加一列并剪切第一个图像路径(并删除保留的逗号),然后将其放入新列中。 因此,结果将是:

itemid;name;quantity;price;Weight;Images;Main_Image
45214;"Banana";351;2;1;"http://domain.com/images/image2.jpg,http://domain.com/images/image3.jpg";"http://domain.com/images/image1.jpg"
我使用Debian和Bash,你可以试试这个

awk -F'[;,]' '{if(NR==1) print $1";"$2";"$3";"$4";"$5";"$6";Main_Image"; if(NR>1) print $1";"$2";"$3";"$4";"$5";\""$7","$8";"$6"\""}' yourCSV
试验


对不起,我加了。我使用Debian和bash将是一个很好的选择这似乎只是删除所有的URL?
$ awk -F'[;,]' '{if(NR==1) print $1";"$2";"$3";"$4";"$5";"$6";Main_Image"; if(NR>1) print $1";"$2";"$3";"$4";"$5";\""$7","$8";"$6"\""}' test
itemid;name;quantity;price;Weight;Images;Main_Image
45214;"Banana";351;2;1;"http://domain.com/images/image2.jpg,http://domain.com/images/image3.jpg";"http://domain.com/images/image1.jpg"