由于我有许多 csv 文件并且想要对 csv 文件的第一列进行排序,在这种情况下,每个文件的第一列名称可能有所不同。因此如何指定列位置来对许多不同的文件进行排序。
这是我尝试过并正在寻找的脚本,就像这样的代码。($_.1)
$InputFilePath = "C\test.csv"
$OutputFolderPath ="C:\output.csv"
$UniqueValue = Import-Csv $InputFilePath | Sort-Object -Property $_.1 | Export-Csv -Encoding Default -NoTypeInformation $OutputFolderPath
两种方式:
反思反对psobject
在每个项目上
Import-Csv $InputFilePath |Sort-Object -Property { $_.psobject.Properties.Value[0] }
这里我们引用隐藏的psobject
memberset 对每个对象进行“发现”它的属性,并解析第一个对象的值。
从第一行提取
$data = Import-Csv $InputFilePath
$sortKey = $data[0].psobject.Properties.Name[0]
$data |Sort-Object -Property $sortKey
这里我们首先将所有数据加载到一个变量中,然后找到集合中第一个对象的第一个属性名称,然后使用该属性名称传递给Sort-Object
您可能会发现此方法对于中等大小的文件(数千行)表现稍好,但随着文件大小的增加可能会分配更多内存。
根据您的数据集测试每个选项,看看哪种效果最好:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)