Цель состоит в том, чтобы удалить все одиночные «переводы строк» (LF) и сохранить «переводы строк», которые следуют после возврата каретки (CR), в файле csv
.
Я получил отчет, который включаетнесколько LF в одной строке, но я хочу оставить только «CR + LF», чтобы каждая строка обозначала один объект, о котором сообщается.
Мне нужно решение в PowerShell
, к сожалению, я очень плохо знаком с сценариями PowerShell,Я пытался изменить некоторые сценарии на этой стороне для этой работы, но это не работает.
Сначала я попытался бы удалить все LF в файле, а затем заменил бы все оставшиеся CR на [CR][LF]
.Но я не достиг первого шага.
$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]