如何使用bash将包含“Lastname,Firstname”的csv列分隔为两个不同的csv列?
我有一个有两列的csv。一列,包含姓、名和与该名称关联的数字。我希望第一列与奇怪的连接列被分开,并有CSV包含如下标题:名字,姓氏,关联号码 csv文件当前如下所示:如何使用bash将包含“Lastname,Firstname”的csv列分隔为两个不同的csv列?,bash,csv,awk,tr,Bash,Csv,Awk,Tr,我有一个有两列的csv。一列,包含姓、名和与该名称关联的数字。我希望第一列与奇怪的连接列被分开,并有CSV包含如下标题:名字,姓氏,关联号码 csv文件当前如下所示: "Dinkleberg, Mark", 245 "Persoli, Kyle", 246 "Liang, Emily", 247 我希望最终结果是这样的 Mark, Dinkleberg, 245 Kyle, Persoli, 246 Emily, Liang, 247 我获得结果的方法是在Excel中使用逗号分隔列功能,并将
"Dinkleberg, Mark", 245
"Persoli, Kyle", 246
"Liang, Emily", 247
我希望最终结果是这样的
Mark, Dinkleberg, 245
Kyle, Persoli, 246
Emily, Liang, 247
我获得结果的方法是在Excel中使用逗号分隔列功能,并将与名字相关联的空格替换为零。这是一个非常乏味的过程,我想看看如何用Bash编写解决方案 带有:
或使用和csvcut:
输出:
如果第一个或第二个名称中有多余的空格,则此操作将不起作用只需删除?tr-d \?我们很乐意看到您迄今为止拥有的任何代码或研究成果,以便读者能够在答案中建立这些代码或研究成果。@halfer我通过使用excel和textedit替换获得了我的结果,并以最非正统的方式得到了我想要的结果。因此我没有剧本。我确信有一个简单的bash系列可以实现我想要的,所以我问了。
awk -F'[ ",]' '{print $4, $2, $7}' OFS=', ' file
tr -d '"' file | csvcut -d ',' -c 2,1,3
Mark, Dinkleberg, 245
Kyle, Persoli, 246
Emily, Liang, 247