如何合并标题和子标题在CSV在powershell?



假设我有一个2行多列的sample.csv文件

Account,    Id, Date
Jan,    Dec,    Feb

现在,我想转换这个文件,它由单行组成,并在PowerShell脚本中按列顺序更改为output.csv

Account,Id,Date,Jan,Feb,Dec

我试了很多方法…

Import-Csv 'sample.csv' | Group-Object ID | ForEach-Object { [PsCustomObject]@{ Header = $_.Group.Dept -join ',' } } | Export-Csv 'output.csv' -NoTypeInformation

不必详细讨论您可能遇到的问题,您可以尝试以下方法:

@"
Account, Id, Date
Jan, Dec, Feb
one, two, three
"@ | ConvertFrom-Csv -PipelineVariable "Header" | Select-Object -First 1 | 
ForEach-Object -Process {
($_.PSObject.Properties.Value, $Header[0].PSObject.Properties.Name | Write-Output) -join ","
}

进入PSObject包装器暴露了当管道连接到Get-Member时未显示的附加属性。我们所追求的主要是列名(.Name)和第一个行值(.Value)。Select-Object -First 1,是为了确保只选择第一行,而不选择任何其他行。因此,我们将两个属性值连接起来,剩下要做的就是导出到一个新的csv文件。

相关内容

  • 没有找到相关文章

最新更新