【问题标题】:Remove all text after line with [info]使用 [info] 删除行后的所有文本
【发布时间】:2020-11-13 19:43:32
【问题描述】:

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

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

我只需要顶部,其他文本稍后将在脚本中替换。这是我尝试过的所有内容

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

仅删除 Info 行,而不删除任何其他内容。我试图循环,但我似乎无法找到带有 where 对象搜索的行。

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

【问题讨论】:

    标签: powershell powershell-4.0


    【解决方案1】:

    要使-replace 运算符将其视为一个字符串,请将@​​987654324@ 添加到模式中。

    $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

    【讨论】:

    • 不错;拼写出来:s 内联正则表达式选项使 . 也匹配 newlines(换行符)。
    猜你喜欢
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 2020-09-21
    • 2014-06-21
    相关资源
    最近更新 更多