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的末尾没有接近。我想知道如何用换行符读取字符串。请帮忙。
答案 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
您还可以删除多个连字符以使文件更易于阅读。