如何在Powershell中仅删除没有"}"的第一行?



我尝试删除文件中的回车,所有行都有"}"在结尾,但有些行,有一个回车和";它下来……这里是我的代码和文件的一个例子,但不工作。非常感谢!

原始文件

"INGENIERIA Y SERVICIOS LOS NOGALES SPA"这是冲突。

预期的结果代码:

$InputFile='Original.txt'
$OutPutFile='NewFile.txt'
(Get-Content $InputFile) | ForEach-Object -Begin {
$results = @()
} -Process {
$out = $.Split("}").GetUpperBound(0)
[int]$iOut = [int]$out
if($iOut -lt 1){$.Replace("`r`n","")}else{$_}
} | Set-Content $OutPutFile

谢谢!

您可以这样做:

(Get-Content $InputFile -Raw) -replace '(?<!})rn' |
Set-Content $outputfile

使用不带-Raw-ReadCount参数的Get-Content读取文件,读取每一行并输出为数组元素。一旦找到分隔符,就输出一行。Get-Content的默认分隔符是行结束符。-Raw允许保留换行符,并将文件作为单个字符串读取。

(?<!})仅在前一个字符不是}时才为负向后匹配。然后我们简单地匹配rnCRLF

最新更新