如何插入具有','作为列分隔符的CSV文件,但在其中一个列值中也有','?

时间:2014-02-25 09:04:49

标签: sql sql-server powershell

我的CSV文件包含许多列和长字符串值。它使用,分隔符作为列分隔符。但其中一列还包含包含,的字符串值。

因此,在将这些作为“批量”插入插入到相应表中时,它将单个列值视为两个单独的列值并将其插入两个不同的列中。但实际上它应该只有单值列。 例如:

"ID","Name","Contact","Address"
"AT00012","Jone Methu",,"Block-20,Muraji peth,Mumbai-40001"

在上面的示例文件中,批量插入字段分隔符,分隔符为,因此它将在3个不同的列中划分“地址”字段值,但不应该。

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

#Replace delimiter and save to temp file"
Get-Content org.csv | % { $_ -replace '","', '";"' -replace '",,"', '";;"' } | Set-Content c:\org-temp.csv

$data = Import-Csv c:\org-temp.csv -Delimiter ";"

Remove-Item c:\org-temp.csv -Force

#work work work

#you could later export directly to csv
#$data | export-csv out.csv -Delimiter "," -NoTypeInformation