【发布时间】:2019-01-21 15:01:29
【问题描述】:
我有一个 CSV 文件,其中随机行包含引号。数据示例为:
示例1:是:否 “示例 2:否:否” “示例 3:是:是” 示例 4:否:是我已经尝试了一些类似的方法:
$newCsvPath = Get-Content -Path .\allsystems.csv
$newCsvPath -replace '"',""
但它保留了引号,就好像第二行从未出现过一样。我用错了吗?
【问题讨论】:
-
您的意思是 allsystems.csv 保留引号,或者您在执行 -replace 时实际上将引号打印到控制台?
-
运行这两行时,
$newCsvPath包含来自allsystems.csv的所有相同信息,包括引号。所以它正在打印引号 -
-replace不会就地替换。您需要将结果分配回变量:$newCsvPath = $newCsvPath -replace '"',""。 -
^解决了,谢谢
-
从示例 csv 我无法弄清楚为什么有些行有 qoutes 而其他行没有。也许你没有向我们展示足够的东西。无论如何,继续删除 csv 文件中的引号是非常危险的,因为通常它们存在是有充分理由的,即解析器知道引号之间的所有内容属于相同的字段,即使它包含分隔符或换行符。使用 HAL9256 给您的答案,如果需要,使用
Export-Csv命令将$newCsvPath保存到 new 文件中。
标签: powershell csv replace