我在尝试着Select-String
在多行文本上。
Example:
"This is line1
<Test>Testing Line 2</Test>
<Test>Testing Line 3</Test>"
我希望能够选择所有 3 行Select-String
。但是,当我这样做时它只选择第一行Select-String -Pattern "Line1"
。如何将所有 3 行提取在一起?
Select-String -Pattern "Line1"
Select-String对其输入对象进行操作单独地,如果您直接将文件路径传递给它(通过-Path
or -LiteralPath
)或者你通过管道输出Get-Content
,对每个进行匹配line.
所以,将您的输入作为单个多行字符串传递,如果它来自文件,则最容易通过以下方式实现Get-Content -Raw
(PSv3+):
Get-Content -Raw file.txt | Select-String -Pattern Line1
请注意,这意味着if模式匹配,文件的全部内容是输出,可通过输出对象访问.Line
财产。
相比之下,如果你想保留每行匹配,但也捕获固定数量的周边线, 使用-Context
范围。
Get-Content file.txt | Select-String -Pattern Line1 -Context 0, 2
Ansgar Wiechers 的有用答案显示如何从结果中提取所有行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)