【发布时间】:2019-10-19 00:12:25
【问题描述】:
我有一个包含地址信息的 CSV 文件,该文件偶尔会在字段中出现换行符。这导致我们的软件将其视为包含无效数据的两条单独的行。我的最终目标是创建一个可以从终端运行的单行 Powershell 命令来解决此问题,但是,在将捕获组带入等式时,我终生无法让“-replace”正常工作。
这是可以用“\r\n”捕获的带有行尾的数据文件:
"name1","address1","city1","state1","zip1"
"name2","address2
2ndline2","city2","state2","zip2"
这是我目前所拥有的(还不是 1 行 cmd 行格式):
((get-content "$local\$file" -raw) -replace '(?sm),"[^"]*(?<line>\r\n)[^"]*",', '''${line}<replace>''') `
-replace "<replace>","" | Set-Content "$local\test2.txt"
我在弄清楚如何将捕获组替换为空时遇到问题,因此我尝试将其替换为另一个字符串,然后我可以轻松删除该字符串。当我运行上述命令时,它会替换整个匹配项,而不仅仅是捕获组。我根据这里的另一个建议创建了这行代码:https://stackoverflow.com/a/29973460/6477292
【问题讨论】:
标签: regex powershell