在Powershell中合并两个没有标题的CSV文件

在Powershell中合并两个没有标题的CSV文件,powershell,export-to-csv,Powershell,Export To Csv,我有两个CSV文件,都没有标题。两个CSV文件中的行数相同。下面是一个例子: csv1.csv: 1,2 3,4 5,6 csv2.csv: a、 b c、 d e、 f 我希望输出如下所示: 1,2,a,b 3,4,c,d 5,6,e,f 我不想添加标题或类似的内容。我只想从csv2.csv中获取第1列和第2列,然后将它们粘贴到csv1.csv的第3列和第4列,或者导出到一个组合的csv 感谢您的帮助。谢谢 如果您想使这一点变得非常简单,并在第一个csv的末尾添加第二个csv,您可以这样做 $

我有两个CSV文件,都没有标题。两个CSV文件中的行数相同。下面是一个例子:

csv1.csv: 1,2 3,4 5,6

csv2.csv: a、 b c、 d e、 f

我希望输出如下所示: 1,2,a,b 3,4,c,d 5,6,e,f

我不想添加标题或类似的内容。我只想从csv2.csv中获取第1列和第2列,然后将它们粘贴到csv1.csv的第3列和第4列,或者导出到一个组合的csv


感谢您的帮助。谢谢

如果您想使这一点变得非常简单,并在第一个csv的末尾添加第二个csv,您可以这样做

$csv1 = Get-Content C:\path\to\first.csv
$csv2 = Get-Content C:\path\to\second.csv

"$csv1,$csv2" | Add-Content C:\path\to\third.csv
输出看起来像

a,b,c,d,e,f,g,h,i,1,2,3,4,5,6,7,8,9

很简单,只要忽略它们是CSV文件这一事实,基于行数的for循环,并用逗号连接每一行

$CSV1 = Get-Content C:\Path\To\File1.csv
$CSV2 = Get-Content C:\Path\To\File2.csv
For($i=0;$i -lt $csv1.count;$i++){
    $CSV1[$i],$CSV2[$i] -join ','|Out-File C:\Path\to\NewFile.CSV
}
应根据需要输出文件的: 1,2,a,b 3,4,c,d
5,6,e,f

可能是这样的—我已经使它只包含两个文件中存在的行,但是您可能有不同的要求

$lines1 = Get-Content "File1.csv"
$lines2 = Get-Content "File2.csv"
$destination = "Combined.csv"

# Make sure the destination file doesn't already exist
Remove-Item $destination

$length = [Math]::Min($lines1.Length, $lines2.Length)
for ($index = 0; $index -lt $length; $index++)
{
    # Append rows
    Add-Content $destination ($lines1[$index] + ", " + $lines2[$index])
}

我知道您要求使用powershell解决方案,但一个鲜为人知的事实是,您可以在DOS中像这样合并文件:


复制File.CSV+File2.CSV OutputFile.CSV

我刚刚注意到我的格式改变了。csv1和csv2行应该只有两列宽,因此1,2在第1行,3,4在第2行。csv2也是如此。组合输出将有4列宽。感谢您的回复。但我不太想去。这给了我一个单行文件。我需要文件有4行深。非常感谢!我是如此挂起它是一个csv和使用导入csv来操纵!我唯一需要添加的是在out文件中添加一个“-append”。