我通过谷歌搜索,但没有找到我要的内容。
我有一个包含国家和人名列表的大文件。我知道如何在Linux中进行多重管道操作,但是在PowerShell中却无法奏效。
这就是我所寻找的内容,但却一无所获:
Select-String .\file -pattern 'country:[ ]{8}IR' -context 5 | Select-String -pattern 'names'
但是,如果我将这个命令分成两个部分,如下所示,则可以工作(我想避免创建一个用于搜索的文件):
Select-String .\file -pattern 'country:[ ]{8}IR' -context 5 > country
Select-String .\file -patern 'names'
*更新1
首次 grep 后的示例数据为:
file:1407215:names: Hadi
file:1407216:company: sample
file:1407217:city: Tehran
file:1407218:district: 8
file:1407219:country: IR
file:1407220:admin: Mahmoud
file:1407221:tech: Hamed
file:1407222:seller: sell@company
file:1407223:status: Active
file:1407224:id: 12456
Select-String .\file -pattern 'country:[ ]{8}IR' -context 5 |Where-Object {$_.Context.PostContext -match 'names'}
:) - Mathias R. Jessennames
行在country
行之前 - 尝试使用$_.Context.PreContext
而不是$_.Context.PostContext
。 - Mathias R. JessenWhere-Object
替换为ForEach-Object
,以输出匹配的前置上下文行 :) - Mathias R. Jessen