[ad_1]
أهلاً،
لدي ملف نصي 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 واستخدامه استيراد-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]
[ad_2]
コメント