假設我有一個文件numbers.txt
:我如何總結選擇字符串提取的數字?
My number 1 ... My number 2 ... My number 3 ...
我試圖計算出上述數字的總和。我從每行提取一個數字,如下所示:
PS > $numbers = gc .\numbers.txt | sls -Pattern "number\ (\d+)" |
>> select {$_.matches[0].groups[1].Value}
>>
PS > $numbers
$_.matches[0].groups[1].Value
-----------------------------
1
2
3
看起來正是我想要總結的。接下來我想申請的措施,對象:
$numbers | measure -sum
measure : Input object "" is not numeric. At line:1 char:12 + $numbers | measure -sum + ~~~~~~~~~~~~ + CategoryInfo : InvalidType: (:PSCustomObject) [Measure-Object], PSInvalidOperationException + FullyQualifiedErrorId : NonNumericInputObject,Microsoft.PowerShell.Commands.MeasureObjectCommand
我在做什麼錯?
我可以投它甚至有Select-對象爲int,但我不知道是長度屬性名稱的措施,對象的障礙是什麼? – greatvovan
鑄造零件不是「選擇對象」的問題。問題在於'Select-Object'使用表達式(scriptblock)創建了一個具有相同名稱的屬性。我們可以給這個列另一個名字(@ {n =「ColumnName」; e = {$ _。matches [0] .etc}}'),但由於您只需要這個數字,所以跳過'Select -Object',並使用'Foreach-Object'。 –
我明白了......這並不容易,但對理解有用。所以當我嘗試使用'measure -sum'$ _。matches [0] .groups [1] .Value「'時,它基本上不知道該名稱,對吧?那麼有什麼感覺有我們無法訪問的名字? – greatvovan