导入没有标头的csv文件列

时间:2014-08-19 18:00:37

标签: powershell

Csv文件数据如下。

Header1,header2
Abc,xyz,pqr
Ab,pd,ss

什么时候使用来自powershell的import-csv最后一列pqr& ss没有被导入。

我想以这种方式输出。

Header1  header2
-----------------
Abc      xyz,pqr
Ab       pd,ss

如何进口?

3 个答案:

答案 0 :(得分:2)

您的CSV格式不正确。如果您要在字段中使用逗号,则该字段需要用引号括起来。

Header1,header2
Abc,"xyz,pqr"
Ab,"pd,ss"

如果你希望它是一个稍后将由powershell加载并用作数组的数组,那么你可能希望将对象导出为XML而不是CSV,因为它支持嵌套数组。

如果这是由您尝试加载到PowerShell中的某个其他应用程序生成的CSV,则您需要自己解析该文件,并且可能无法使用Import-CSV。类似的东西:

$Imported = Get-Content $file | Select -Skip 1 | ForEach {[PSCustomObject][Ordered]@{'Header1'=$_.Split(",")[0];'Header2'=$_.Split(",")[1..2]}}

或者,您可以使用不同的分隔符存储CSV,这样可能看起来更像(以分号分隔):

Header1;Header2
Abc;xyz,pqr
Ab;pd,ss

答案 1 :(得分:1)

使用-header为列提供标题,包括第三列

导入后连接第3列和第3列4在一起

答案 2 :(得分:0)

您可以将第2列数据与另一个分隔符分开,例如' - '或其他东西,以便您可以正确导入