不确定这是否可行,但我想使用Powershell来完成以下操作:删除任何空行块中的前3个空白行。
例如:
hello
this is a test
this is still a test
test
我正在寻找的预期输出是:
hello
this is a test
this is still a test
test
这可能吗?
答案 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
参数。