如何使用bash将包含“姓氏,名字”的csv列分隔为两个不同的csv列?

时间:2019-12-09 23:27:36

标签: bash csv

我有两列的csv。包含“姓氏,名字”和与该名字相关联的数字的一列。我希望将第一列与奇数级联的列分开,并让CSV包含这样的标题:名字,姓氏,关联编号

csv文件当前如下所示:

"Dinkleberg, Mark", 245
"Persoli, Kyle", 246
"Liang, Emily", 247

我希望它看起来像的最终结果是

Mark, Dinkleberg, 245
Kyle, Persoli, 246
Emily, Liang, 247

我达到目标的方法是使用Excel中的逗号分隔列功能,并用零代替与名字关联的空格。这是一个非常繁琐的过程,想看看我如何用Bash编写解决方案。

1 个答案:

答案 0 :(得分:1)

使用

awk -F'[ ",]' '{print $4, $2, $7}' OFS=', ' file

或与csvcut一起使用:

tr -d '"' file | csvcut -d ',' -c 2,1,3

输出:

Mark, Dinkleberg, 245
Kyle, Persoli, 246
Emily, Liang, 247

如果名字或名字中有多余的空格,这将不起作用