作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因为我有很多 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
成员集来“发现”它的属性,并解析第一个对象的值。
$data = Import-Csv $InputFilePath
$sortKey = $data[0].psobject.Properties.Name[0]
$data |Sort-Object -Property $sortKey
这里我们首先将所有数据加载到一个变量中,然后找出集合中第一个对象的第一个属性名,然后使用该属性名传递给Sort-Object
您可能会发现这种方法对于中型文件(数千行)的性能稍好,但可能会随着文件大小的增加分配更多内存。
针对您的数据集测试每个,看看哪个最有效:-)
关于powershell - 如何在 PowerShell 中使用 import-csv 指定列位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65992990/
我是一名优秀的程序员,十分优秀!