gpt4 book ai didi

powershell - 使用PowerShell从文件中提取模式

转载 作者:行者123 更新时间:2023-12-03 00:40:07 25 4
gpt4 key购买 nike

[我是PowerShell的初学者]

我想使用PowerShell从特定目录下的所有文件中提取特定模式。我怎么做?

例如,让文件内容为:

<node1>Hello World ignore</node1> 
<wantedNode>Hello World extract
this text </wantedNode>

我只想提取包含“hello world”(不区分大小写)的类型的节点:
"Hello World extract this text"

最佳答案

如果文件是正确的XML文档,那么这很容易,例如:

Get-ChildItem *.xml | Select-Xml '//wantedNode' | Format-List Path, @{n="Text";e={$_.Node.InnerText}}

如果XML文档具有默认的 namespace ,则将变得有些棘手,但不会太多。如果您需要进行正则表达式搜索,则由于感兴趣的文本跨越多行,因此您需要以单个字符串的形式读取文件,例如:
[IO.File]::ReadAllText("$pwd\test.xml") | 
Select-String '(?s)(?<=\<wantedNode\>)(.*?)(?=\</wantedNode\>)' |
Format-List Matches

在PowerShell v3中,这变得更简单了:
Get-Content .\test.xml -Raw | 
Select-String '(?s)(?<=\<wantedNode\>)(.*?)(?=\</wantedNode\>)' |
Format-List Matches

关于powershell - 使用PowerShell从文件中提取模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10417780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com