删除 [info] 行后的所有文本

Remove all text after line with [info]

我正在尝试删除单行文本“[info]”之后的所有文本行 这是一个示例:

Top=1266
[info]
name=tod
space=456
number=221,441,111,0
[version]
version=1

我只需要最上面的,其他文字稍后会在脚本中替换。这是我尝试过的所有方法

$Content -replace '\[Info\]*',''

只删除信息行,不删除任何其他内容。我试过循环,但我似乎找不到带有 where 对象搜索的行。

有什么快速简便的方法可以删除单行设置文本后的所有代码行?

要使 -replace 运算符将其视为一个字符串,请将 (?s) 添加到模式中。

$Content -replace '(?s)\[Info\].*'

您还需要匹配任何字符,因此 .* 在这种情况下有效。第二部分是可选的。由于您要用任何东西替换它,因此您可以简单地省略它。

详细了解 powershell 中的正则表达式

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_regular_expressions?view=powershell-7.1

和运算符

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_operators?view=powershell-7.1