如何从Powershell中的文件中连续删除3个空行

时间:2018-03-05 20:51:30

标签: powershell

不确定这是否可行,但我想使用Powershell来完成以下操作:删除任何空行块中的前3个空白行。

例如:

hello

this is a test




this is still a test


test

我正在寻找的预期输出是:

hello

this is a test

this is still a test


test

这可能吗?

1 个答案:

答案 0 :(得分:3)

因此,您正在寻找一行中有4个新行的实例(3个用于空行,1个用于下一行,其中包含文本)。您可以使用-replace运算符执行此操作以执行RegEx(正则表达式的简称)匹配和替换。

@'
hello

this is a test




this is still a test


test
'@ -replace "(\r?\n){4}","`n"

不知道是否会有回车字符以及我使用(\r?\n){4}的正则表达式匹配模式的新行字符,该模式表示找到零个或一个回车字符后跟一个换行字符,并且找到连续4次分组。如果找到,请将其替换为1个新行字符。这个输出正是你想要的。这将适用于多行字符串,因此如果您对文件执行此操作,则在使用-raw读取文件时,您将需要使用Get-Content参数。