Powershell select-字符串用法

Powershell select-string usage

这是我的脚本,它删除了其中包含 /> 的所有行。我有一个新要求,即保留所有具有 index="1"/>.

的行

我要离开的完整行的示例是 <LOTLEVEL index="1"/>。逻辑是,如果行包含 index="1"/> 则保留该行,如果行包含 /> 但不包含 index="1"/> 则删除该行。

现有脚本如下所示。任何建议都会很棒。越简单越好

$SourceDir = Split-Path $MyInvocation.MyCommand.Path
Get-Content "$SourceDir\*.txt" | Select-String -pattern '/>' -notmatch -pattern | foreach {$_.Line} | out-file "$SourceDir\clean.xml" -encoding ascii -width 1000

尝试这样的事情:

Get-Content "$SourceDir\*.txt" | where {$_ -notmatch '"/>'} | Select-String '/>'

如果您需要更具体的内容,请尝试:

Get-Content "$SourceDir\*.txt" | where {$_ -notmatch 'index="\d"(\s+)?/>'} | Select-String '/>'