问题描述
我尝试删除文件中的回车符,所有行的末尾都有一个“}”,但有些行有一个回车符,而“}”在下面....这是我的代码和文件的示例,但不起作用。非常感谢!!
“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 '(?<!})\r\n' |
Set-Content $outputfile
使用不带 Get-Content
或 -Raw
参数的 -ReadCount
读取文件,读取每一行并将其作为数组元素输出。一旦找到定界符,就会输出一行。 Get-Content
的默认分隔符是行尾字符。 -Raw
允许保留换行符并将文件作为单个字符串读取。
(?<!})
仅当前面的字符不是 }
时才是负向后视匹配。然后我们只需将 \r\n
与 CRLF
匹配。