我有一个csv文件的输出,我在Notepad ++中打开了它。我通过一个API调用得到了这个输出。下面的示例是玩具数据,但与原始数据类似。
id,name,description
2341,Example,"Example with no double quotes"
4567,Second Example,"Example with double quotes
But the line breaks"
第一个条目只占用一行,但第二个条目占用两行,因为该行中断了。从我获得数据的地方,在第二行的描述中,单词“quotes”和“But”之间有一个<br>
。在csv输出和通过notepad++查看时,此字符不可见,但会换行。
我使用以下代码来修复它:
$text=(Get-Content $filepath -Raw) -replace '([^,]")(\s*\r\n\s*)+("[^,])',"`$1`n`$3" -replace '\r\n',''
但结果和上面一样。
理想的结果如下:
id,name,description
2341,Example,"Example with no double quotes"
4567,Second Example,"Example with double quotes But the line breaks"
其中删除了<br>
字符。
1条答案
按热度按时间jdgnovmf1#
面向对象的解决方案是使用
Import-Csv
或ConvertFrom-Csv
:上面的例子之所以有效,是因为你知道
.description
属性需要更新,但是,如果你不知道/不想处理CSV中的所有列,你需要迭代每个对象的每个属性: