PowerShell:无法导入带换行符的CSV

PowerShell:无法导入带换行符的CSV,powershell,csv,import,delimiter,Powershell,Csv,Import,Delimiter,像这样的事情,我想把文本文件数据导入access。数据内容示例如下:(example.txt) 我使用-分隔符“|”作为分隔符,它对ID1和ID2很有效,但当谈到ID3时,它将一直读取到“…product ID:1234”,然后停止。然后,它开始从“tagid”读取新行。正如你们所看到的,“|”在ID 3的末尾不是很近。我不知道怎样读断行的字符串。请帮助。修复您的csv。需要引用包含换行符或delimeter字符的值。在导入之前,还应删除第2行(代码>------------行) 前 进口: P

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


我使用-分隔符“|”作为分隔符,它对ID1和ID2很有效,但当谈到ID3时,它将一直读取到“…product ID:1234”,然后停止。然后,它开始从“tagid”读取新行。正如你们所看到的,“|”在ID 3的末尾不是很近。我不知道怎样读断行的字符串。请帮助。

修复您的csv。需要引用包含换行符或delimeter字符的值。在导入之前,还应删除第2行(代码>------------行)

进口:

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 

您也可以在导入之前替换文件中的换行符,但我猜您需要原样的值。

您必须解析导入文件,并用一个逗号替换coma,后跟换行符序列。这可能是
,`n
,`r
,具体取决于文件的格式。 这应该可以做到:

gc example.txt | Out-String | % { 
    $_.replace(",`r",",").replace(",`n",",") } | Set-Content example.txt
然后运行您的
导入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

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

是的,这很容易解决我的问题,只需在消息行分隔符之间添加双引号。非常感谢。
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