पावरशेल: टेक्स्ट फ़ाइल का चयन करें और क्रमबद्ध करें


नमस्ते,

मेरे पास निम्नलिखित सामग्री वाली एक टेक्स्ट फ़ाइल test.txt है:

AAAA z 669
BBBB y 9555
AAAA z 5 
BBBB z 48
CCCC y 1166
AAAA x 67777
BBBB z 223

मैं “z” वाली पंक्तियाँ ढूँढ़ना चाहता हूँ और परिणामी सेट को अंतिम कॉलम के अनुसार क्रमबद्ध करना चाहता हूँ।

मैंने क्या प्रयास किया है:

Get-Content .\test.txt | Select-String "z" | Sort-Object { [double]$_.split()[-1] }

यह त्रुटि देता है:

Sort-Object : Method invocation failed because [Microsoft.PowerShell.Commands.MatchInfo] does not contain a method name
d 'split'.
At line:1 char:46
+ ... test.txt | Select-String "z" | Sort-Object { [double]$_.split()[-1] }
+                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidResult: (AAAA z 669:PSObject) [Sort-Object], RuntimeException
    + FullyQualifiedErrorId : ExpressionEvaluation,Microsoft.PowerShell.Commands.SortObjectCommand

समाधान 1

सामग्री को .csv फ़ाइल की तरह व्यवहार करके उपयोग करने का प्रयास करें आयात-सीएसवी (Microsoft.PowerShell.Utility) – PowerShell | माइक्रोसॉफ्ट लर्न[^] कस्टम ऑब्जेक्ट का एक सेट बनाने के लिए। फिर आपको वस्तुओं को क्रमबद्ध करने में सक्षम होना चाहिए।

[edit]

ऐसा लगता है कि यह काम करता है:

पावरशेल
$A = Import-Csv -Path .\test.txt -Delimiter " " -Header 'One','Two','Three'
$A | Where-Object -Property Two -Like "z" | Sort-Object { [int]$_.Three }

नोट, मैंने प्रयोग किया int इसके बजाय double चूँकि सभी मान पूर्णांक संख्याएँ हैं।

[/edit]

コメント

タイトルとURLをコピーしました