1
"ID","Full Name","Age"

"1","Jone Micale","25"

这是我创建的 CSV 文件的示例,现在我想仅从IDandAge列值中删除双引号。

我尝试了不同的方法,但我不想从中创建一个新文件。我只想使用PowerShell v1使用更改来更新文件。

4

1 回答 1

2

Export-Csv将始终将所有字段放在双引号中,因此您必须以艰难的方式删除不需要的引号。像这样的东西可能会起作用:

$csv = 'C:\path\to\your.csv'
(Get-Content $csv) -replace '^"(.*?)",(.*?),"(.*?)"$', '$1,$2,$3' |
    Set-Content $csv

正则表达式分解:

  • ^$分别匹配字符串的开头和结尾(Get-Content返回包含文件行的数组)。
  • "(.*?)"匹配两个双引号之间的文本并捕获组中的匹配项(不包括双引号)。
  • ,(.*?),匹配两个逗号之间的文本并捕获组中的匹配项(包括双引号)。
  • $1,$2,$3用逗号分隔的第一组、第二组和第三组替换匹配的字符串。
于 2014-02-20T10:37:23.577 回答