如何使用Powershell脚本从CSV文件中删除特定列上的双引号

时间:2014-02-20 09:07:09

标签: powershell powershell-v1.0

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

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

此处是我创建的CSV文件中的示例,现在我只想从IDAge列值中删除双引号。

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

1 个答案:

答案 0 :(得分:2)

Export-Csv将始终将所有字段都放在双引号中,因此您必须以困难的方式删除不需要的引号。这样的事情可能有用:

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

正则表达式细分:

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