Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell:在CSV文件中编辑所有换行符和回车符_Powershell_Carriage Return_Linefeed - Fatal编程技术网

Powershell:在CSV文件中编辑所有换行符和回车符

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'

目标是删除所有单个“换行符”(LFs),并将回车符(CR)之后的“换行符”保留在
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)-替换“(?)?