【发布时间】:2021-06-22 17:10:11
【问题描述】:
我是 PowerShell 新手。
我需要用 CSV 文件中的\" 替换如下文本中的双引号。
输入: "Te"st1","Tes"t2","Test"3"
输出:
"Te\"st1","Tes\"t2","Test\"3"
我尝试使用 -replace。但它正在替换 CSV 文件中的所有双引号。只需要在文本内替换引号。
$csv = 'C:\Users\Suresh\Documents\test.txt' (Get-Content $csv) -replace '"','\"' | out-file 'C:\Users\Suresh\Documents\test_out.txt'
【问题讨论】:
-
所以你想从
"的第二个实例开始每隔三分之一替换一次?或者一个值/列是否可以包含多个未转义的"? -
@MathiasR.Jessen,一列可以包含多个未转义的`"。
-
我认为您的输入无法被明确解析。
-
不擅长
regex,但试试这样的东西,可能对你有用:'"Te"st1","Tes"t2","Test"3","Test4"",""Test5"' -replace '([\w"])"([\w"])','$1\"$2' -
在 csv 中,当字段包含引号时,该引号应加倍,而不是以反斜杠为前缀。
标签: powershell