【发布时间】:2019-08-28 19:29:50
【问题描述】:
假设我有一个包含以下内容的文件:
1,first_string,somevalue
2,second_string,someothervalue
n,n_nd_string,somemorevalue
我需要获取此文件的内容,获取最后一个字符串并获取“,”符号之前的数字(在本例中为 n)。 (我只是增加它并将 n+1 字符串附加到这个文件,但现在没关系)。我希望用 pipeline cascade
完成所有这些工作到目前为止,我已经找到了这个解决方案:
[int]$number = Get-Content .\1.mpcpl | Select-Object -Last 1 | Select-String -Pattern '^(\d)' | ForEach-Object {$_.matches.value}
它确实有效,但我想知道是否有任何方法可以在不使用 foreach 循环的情况下解决 Select-String -Pattern '^(\d)' 返回对象?因为我知道在我的情况下返回集合将仅包含 1 个元素(我选择文件的最后一个字符串并且我只得到一个匹配项)
【问题讨论】:
-
您可能需要
-match运算符才能仅获取第一个匹配项。或-replace:-replace '^(\d).*', '$1' -
hm,但我究竟如何在管道中应用 -match 或 -replace 运算符?例如,在我得到文件的最后一个字符串之后。
标签: regex powershell pipeline