在Powershell中按空格分割模式输出

时间:2019-05-22 13:28:19

标签: windows powershell split

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

文件包含以下数据:

f5834eab44ff bfd0bc8498d8 1557718920
dc8087c38a0d a72e89879030 1557691221
e6d7aaf6d76b caf6cd0ef68c 1557543565

现在,它与模式匹配并返回行。 但是我无法将其拆分到空格上,因此我可以获取第三列(索引2)。

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

输出应为:

1557691221

2 个答案:

答案 0 :(得分:2)

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

String.Split()

答案 1 :(得分:0)

您只能在具有脚本块选项“ {}”的cmdlet中使用“ $ _”。选择字符串返回MatchInfo对象。

(select-string dc8087c38a0d $hashlistfile).gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    MatchInfo                                System.Object

-split运算符似乎更容易处理它。您的示例中的模式后有一个额外的括号')'。

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

1557691221