PowerShell中的空间分配图案输出



我需要在匹配模式后返回的字符串的第三列。它也需要是单线

文件包含这样的数据:

f5834eab44ff bfd0bc8498d8 1557718920
dc8087c38a0d a72e89879030 1557691221
e6d7aaf6d76b caf6cd0ef68c 1557543565

现在,它与模式匹配并返回行。但是我无法在空间上拆分,以便我可以获得第三列(索引2(。

    select-string -Path $hashlistfile -Pattern 'dc8087c38a0d') | $_.Split(" ") | $_[2] 

输出应为:

1557691221

您可以从Select-String产生的输出对象中获取Line属性,然后将其拆分,然后直接索引到String.Split()的结果:

Select-String -Path $hashlistfile -Pattern dc8087c38a0d |ForEach-Object {
  $_.Line.Split(" ")[2]
}

您只能在具有脚本块选项'{}'的cmdlet中使用'$ _'。SELECT-string返回MatchInfo对象。

(select-string dc8087c38a0d $hashlistfile).gettype()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    MatchInfo                                System.Object

-plit操作员似乎更容易处理它。示例中的模式之后,有一个额外的括号'(。

select-string dc8087c38a0d $hashlistfile | foreach { -split $_ | select -index 2 }
1557691221

最新更新