如何将从第二列开始的任何列的值移动到新行?

时间:2018-04-05 15:38:23

标签: powershell csv import-csv

我正在使用PowerShell执行此任务,并希望将从第2列开始的任何列的值移动到它们自己的行。我有一个类似这样的CSV文件:

red,blue,yellow
red
red,blue

我想实现以下

red
blue
yellow
red
red
blue

我不知道在任何给定的CSV文件中我可以拥有多少列,但最终结果是每行中的所有值都在它们自己的行上。

我在考虑将Import-Csv cmdlet与Select-Object一起使用,但无法弄清楚。

1 个答案:

答案 0 :(得分:3)

使用您当前显示的示例数据,然后:

$out = New-Object System.Collections.Arraylist
Get-Content C:\Path\To\InputFile.txt | %{$out.AddRange(($_ -split ','))}
$out | Set-Content C:\Path\To\OutputFile.txt

我习惯性地将列表放在一起,因为我几乎总是计划以某种方式处理列表。在这种情况下,如果您只是想要一个新文件,则不需要该列表:

(Get-Content input.txt) -split ',' | Set-Content output.txt