Scr*_*rry 14 sorting powershell
嘿伙计们,我正在尝试用CSV文件中的数字对colomn进行排序.但不知怎的,它不起作用.示例CSV:
Orange;65
Red;160
Green;140
White;110
Purple;85
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的一段代码:
$csv = Import-Csv -Header "Color", "Number" -delimiter ';' data.csv
$csv | Sort-Object Number
Run Code Online (Sandbox Code Playgroud)
这给了我以下输出:
Color Number
----- ------
White 110
Green 140
Red 160
Orange 65
Purple 85
Run Code Online (Sandbox Code Playgroud)
显然不是正确的顺序.有人可以解释一下如何解决这个问题吗?谢谢!
Fro*_* F. 35
Import-CSVstrings默认情况下导入csv列.您需要int在按值排序之前将其强制转换,而不是"按字母顺序排序".例如:
$csv = Import-Csv -Header "Color", "Number" -delimiter ';' data.csv
$csv | % { $_.Number = [int]$_.Number }
$csv | Sort-Object Number
Color Number
----- ------
Orange 65
Purple 85
White 110
Green 140
Red 160
Run Code Online (Sandbox Code Playgroud)
作为替代方案,您可以在排序时进行转换,如下所示:
$csv = Import-Csv -Header "Color", "Number" -delimiter ';' data.csv
$csv | Sort-Object @{e={$_.Number -as [int]}}
Run Code Online (Sandbox Code Playgroud)
甚至更短 $csv | Sort-Object { [int]$_.Number }
| 归档时间: |
|
| 查看次数: |
22694 次 |
| 最近记录: |