如何识别并移除同时含CR与CRLF字符文件中的换行符
移除文件中混合的CR与CRLF换行符
场景说明:文件内容中同时存在单独的**CR(回车符,\r)和CRLF(回车换行符,\r\n)**两种换行控制字符,需要识别并移除这些换行符。
PowerShell 实现方式
直接移除换行符
Get-Content -Path "目标文件路径" -Raw | ForEach-Object { $_ -replace '(\r\n|\r)', '' } | Set-Content -Path "处理后文件路径" -NoNewline
先检查再移除
如果需要先判断文件中是否存在目标换行符,再执行移除操作:
$filePath = "目标文件路径" $outputPath = "处理后文件路径" $content = Get-Content -Path $filePath -Raw if ($content -match '(\r\n|\r)') { $content -replace '(\r\n|\r)', '' | Set-Content -Path $outputPath -NoNewline Write-Host "已成功移除文件中的换行符" } else { Write-Host "文件中未检测到目标换行符" }
批处理 实现方式
纯批处理处理特殊字符局限性较大,可借助PowerShell的能力实现:
@echo off set "input=目标文件路径" set "output=处理后文件路径" :: 检查文件中是否存在CR或CRLF findstr /r /c:"\r" "%input%" >nul if %errorlevel% equ 0 ( powershell -Command "(Get-Content -Path '%input%' -Raw) -replace '(\r\n|\r)', '' | Set-Content -Path '%output%' -NoNewline" echo 已移除文件中的换行符 ) else ( echo 文件中未发现目标换行符 )
内容的提问来源于stack exchange,提问作者Goks
相关产品推荐
相关产品推荐

