首页 > 解决方案 > 使用 powershell 挤压空行

问题描述

我怎样才能挤空多个空行,这样

AAA
AAA
AAA

BBB
BBB


CCC

进入

AAA
AAA
AAA

BBB
BBB

CCC

使用powershell。

剧本

(gc test.tex).Trim() | Where-Object{$_ -notmatch "^\s*$"}

挤压每一个空行,这不是我想要的。

标签: powershell

解决方案


将文件作为单个字符串读取,修剪前导/尾随空格,然后通过将 2 个或更多连续换行符替换为 2 个换行符来折叠它们。

(Get-Content test.txt -Raw).Trim() -replace '(\r?\n){2,}', '$1$1'

该参数-Raw是在 PowerShell v3 中引入的。如果您使用的是旧版本,您可以通过管道输出来模拟行为Out-String

(Get-Content test.txt | Out-String).Trim() -replace '(\r?\n){2,}', '$1$1'

推荐阅读