Powershell:在CSV文件中编辑所有换行符和回车符
目标是删除所有单个“换行符”(LFs),并将回车符(CR)之后的“换行符”保留在Powershell:在CSV文件中编辑所有换行符和回车符,powershell,carriage-return,linefeed,Powershell,Carriage Return,Linefeed,目标是删除所有单个“换行符”(LFs),并将回车符(CR)之后的“换行符”保留在csv文件中 我得到一个报告,其中包括一行中的几个LF,但我只想保留“CR+LF”,因此每行代表一个报告对象 我需要PowerShell中的解决方案,不幸的是,我对PowerShell脚本非常陌生。我试图为这项工作修改这边的一些脚本,但它不起作用 首先,我将尝试删除文件中的所有LF,然后用[CR][LF]替换所有剩余的CR。但我没有迈出第一步 $original_file ='C:\Test\Server.csv'
csv
文件中
我得到一个报告,其中包括一行中的几个LF,但我只想保留“CR+LF”,因此每行代表一个报告对象
我需要PowerShell中的解决方案,不幸的是,我对PowerShell脚本非常陌生。我试图为这项工作修改这边的一些脚本,但它不起作用
首先,我将尝试删除文件中的所有LF,然后用[CR][LF]
替换所有剩余的CR。但我没有迈出第一步
$original_file ='C:\Test\Server.csv'
$new_file = 'C:\Test\Server_changed.csv'
(Get-Content $original_file -Raw).Replace('´n',' ') | Set-Content $new_file -Force
(Get-Content $new_file -Raw).Replace('`r','`r`n') | Set-Content $new_file -Force
源CSV
:
"Servername";"CPU","Memory";"Annotation";"OperatingSystem"[CR][LF]
"Server1";"4";"8";"very importand Server!![LF]
If reboot is needed:[LF]
1. Contact Me[LF]
2. Stop all running Services before shutting down the OS[LF]
";"Windows Server 2019";[CR][LF]
它应该是什么样子:
"Servername";"CPU","Memory";"Annotation";"OperatingSystem"[CR][LF]
"Server1";"4";"8";"very importand Server!! If reboot is needed: 1. Contact Me 2. Stop all running Services before shutting down the OS ";"Windows Server 2019";[CR][LF]
您可以多次使用
-replace
操作符来获得结果
$original_file ='C:\Test\Server.csv'
$new_file = 'C:\Test\Server_changed.csv'
(Get-Content $original_file -Raw) -replace "(?<!\r)(\n)" -replace "\r(?!\n)","`r`n" |
Set-Content $new_file -NoNewLine -Force
$original\u file='C:\Test\Server.csv'
$new\u file='C:\Test\Server\u changed.csv'
(获取内容$original_文件-Raw)-替换“(?)?