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 '/>'
这是我的脚本,它删除了其中包含 />
的所有行。我有一个新要求,即保留所有具有 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 '/>'