Считать файл как одну строку, обрезать начальные / конечные пробелы, затем свернуть 2 или более последовательных перехода на новую строку, заменив их ровно на 2 строки.
(Get-Content test.txt -Raw).Trim() -replace '(\r?\n){2,}', '$1$1'
Параметр -Raw
введен в PowerShellv3.Если вы используете более старую версию, вы можете эмулировать поведение, передавая вывод через Out-String
:
(Get-Content test.txt | Out-String).Trim() -replace '(\r?\n){2,}', '$1$1'