PowerShell:无法使用换行符导入CSV

时间:2014-04-21 09:43:37

标签: powershell csv import delimiter

像这样的事情,我想将文本文件数据导入访问。数据内容示例如下:(example.txt)

ID | Name | Message | User
----------------------------
1 | Joe | This is a text, error message | admin
2 | Mary | No error message, ID number: 9182734 | normal-user
3 | Terry | This is a long text, long message. Product ID : 1234,
Tag ID : fhdj123, Please restart | admin

我使用-Delimiter“|”作为分隔符,它适用于ID 1和ID 2,但是当到达ID 3时,它将只读到“...产品ID:1234”,然后停止。之后,它开始从“标签ID”中读取新行。你们可以看到“|”在ID 3的末尾没有接近。我想知道如何用换行符读取字符串。请帮忙。

2 个答案:

答案 0 :(得分:0)

修复你的csv。需要引用包含换行符或分隔符字符的值。您还应该在导入之前删除第2行(---------------- - 行)。

实施例

ID | Name | Message | User
1 | Joe | This is a text, error message | admin
2 | Mary | No error message, ID number: 9182734 | normal-user
3 | Terry | "This is a long text, long message. Product ID : 1234,
Tag ID : fhdj123, Please restart" | admin

导入:

PS > import-csv -Delimiter "|" .\Desktop\test.csv 

ID  Name   Message                                                    User       
--- -----  --------                                                   ----       
1   Joe    This is a text, error message                              admin      
2   Mary   No error message, ID number: 9182734                       normal-user
3   Terry  This is a long text, long message. Product ID : 1234,...   admin 

您还可以在导入之前替换文件中的换行符,但我猜测您需要按原样使用这些值。

答案 1 :(得分:0)

你必须解析你的导入文件并用一个昏迷替换昏迷,然后换行换行序列。这可以是,`n,`r,具体取决于您的文件格式。 这应该可以解决问题:

gc example.txt | Out-String | % { 
    $_.replace(",`r",",").replace(",`n",",") } | Set-Content example.txt

然后运行您的import-csv

PS D:\>Import-Csv example.txt -Delimiter "|"

将导致列的正确分配:

ID                      Name                    Message                User
---                     -----                   --------               ----
--------------------...
1                       Joe                     This is a text, err... admin
2                       Mary                    No error message, I... normal-user
3                       Terry                   This is a long text... admin

您还可以删除多个连字符以使文件更易于阅读。