我有多个测量文件,每个文件都有一列数字数据。 (更新:脚本应适用于可变数量的测量文件。)
data1.dat
5.82138
2.79191
3.99286
data2.dat
0.00108889
0.00217778
0.00326667
...
dataN.dat
1
1
1.41421
如何使用 Powershell 将这些数据文件合并到逗号分隔值文件中?
"data1","data2.dat",...,"dataN.dat"
5.82138,0.00108889,...,1
2.79191,0.00217778,...,1
3.99286,0.00326667,...,1.41421
相关
答案 0 :(得分:2)
这是一种方式:
$files = Get-ChildItem D:\temp *.dat
$header = $files|foreach {$_.basename}
$content= $files | foreach { ,(gc $_.fullname) }
$lines = for($i=0; $i -lt $content[0].Count; $i++)
{
$line = for($x=0; $x -lt $files.count; $x++)
{
$content[$x][$i]
}
$line -join ','
}
$lines | ConvertFrom-Csv -Header $header | Export-Csv data.csv
答案 1 :(得分:1)
您可以尝试这样的事情:
$file1 = "C:\firstTxtFile.txt"
$file2 = "C:\SecondTxtFile.txt"
$outputFile = "C:\Output.txt"
$file1String = Get-content $file1
$file2String = Get-content $file2
'"data1.dat","data2.dat"' > $outputFile
$counter = 0
while(($file1String[$counter] -ne $null) -and ($file2String[$counter] -ne $null)){
$Line = $file1String[$counter] + "," + $file2String[$counter]
$line >> $outputFile
$counter++
}
这将采用两个文本文件并将它们组合成一个输出文件。
注意:每次运行时都会覆盖输出文件。