如何在 PowerShell 中按第 3 列对文本文件进行排序? 这是文件的一部分:
reza zabihi 12 1 maryam joraee 17 2 leyla ahmadi 13 2 farzin farahbakhsh 16 1 keyvan maleki 8 1 kaveh ahangar 18 1 nooshafarin bakhtiari 13 2 roya afrashteh 13 2 asghar nazemi 18 1 jaleh nooruzi 16 2 ali samadi 6 1 mohsen adibi 3 1 firooz karimi 7 1 mostafa rostamian 18 1 jafar omidi 6 1 shima zagrosi 12 2 somayyeh modaberi 16 2 shahram zamani 16 1 sayeh rahmati 3 2 shirin rahjoo 12 2
I tried
Get-Content namef | Sort-Object { [double]$_.Split()[-2] } -Descending
最佳答案
你已经差不多了。您的代码无法按预期方式工作的原因是 Split()
方法在 each 空格处拆分字符串,因此您会得到很多空列。您真正想要的是在连续 空格处拆分。要执行后者,请使用 -split
运算符:
Get-Content namef | Sort-Object { [double]($_ -split '\s+')[-2] } -Descending
关于powershell - 如何在 PowerShell 中按列排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48292081/