Powershell 按文件中的第一列排序

Powershell 按文件中的第一列排序,powershell,sorting,Powershell,Sorting,我有一个名为adat.dat的文件,其中包含以下数据: 1;400;1000000;garden kitchen 11;178;56124;bathroom roof 7;777;20000;oneroom kitchen 10;150;1000000;garage yard 是否有一个类似于Linux排序-n选项的选项?使用导入Csv读取数据。如果数据没有标题,可以通过-Header参数指定自己的标题。然后使用将字符串值强制转换为整数的自定义属性按第一列排序(用于数字排序) 这里有一个使用获取

我有一个名为adat.dat的文件,其中包含以下数据:

1;400;1000000;garden kitchen 11;178;56124;bathroom roof 7;777;20000;oneroom kitchen 10;150;1000000;garage yard
是否有一个类似于Linux
排序-n
选项的选项?

使用
导入Csv
读取数据。如果数据没有标题,可以通过
-Header
参数指定自己的标题。然后使用将字符串值强制转换为整数的自定义属性按第一列排序(用于数字排序)


这里有一个使用
获取内容
而不是
导入CSV
的方法。对于大型文件,
Import CSV
中的对象数组可能会变得相当大。[grin]通过使用scriptblock为
排序对象的目标创建一个计算属性,这避免了一些问题

# fake reading in a text file
#    in real life, use Get-Content
$InStuff = @'
1;400;1000000;garden kitchen
11;178;56124;bathroom roof
7;777;20000;oneroom kitchen
10;150;1000000;garage yard
'@ -split [environment]::NewLine

$SortedInStuff = $InStuff |
    Sort-Object {[int]$_.Split(';')[0]}

$SortedInStuff
输出

1;400;1000000;garden kitchen
7;777;20000;oneroom kitchen
10;150;1000000;garage yard
11;178;56124;bathroom roof

谢谢你,它正在工作,但是你能解释一下{[int]$\uA.a}是什么意思吗?@TylerJoe-确保数字字符串转换为实际数字-允许正确的数字排序而不是字符串排序。[咧嘴笑]@TylerJoe-kool!非常欢迎你。。。我也很乐意帮忙。。。[咧嘴笑]
Import-Csv 'adat.dat' -Delimiter ';' -Header 'a', 'b', 'c', 'd' |
    Sort-Object {[int]$_.a}
# fake reading in a text file
#    in real life, use Get-Content
$InStuff = @'
1;400;1000000;garden kitchen
11;178;56124;bathroom roof
7;777;20000;oneroom kitchen
10;150;1000000;garage yard
'@ -split [environment]::NewLine

$SortedInStuff = $InStuff |
    Sort-Object {[int]$_.Split(';')[0]}

$SortedInStuff
1;400;1000000;garden kitchen
7;777;20000;oneroom kitchen
10;150;1000000;garage yard
11;178;56124;bathroom roof