我有一些CSV格式的大文件,我想在Powershell中使用Import-Csv
命令转换为对象。但是文件缺少列标题,在使用Import-Csv
之前需要添加这些文件。将这些添加到文件中的最快和最有效的方法是什么?
答案 0 :(得分:6)
预装大文件不是一件容易或快速的操作。
但是,import-csv确实有一个“header”参数,可用于指定列标题,即:
$header = 'Foo', 'Bar', 'Baz'
import-csv .\myfile.csv -header $header
答案 1 :(得分:4)
我确信有一种方法可以在一行中执行此操作,但这样可以。
假设你有 Test.csv 这些内容:
1,2,3
4,5,6
7,8,9
此PowerShell代码将创建一个新文件 NewTest.csv ,其中包含列名并附加Test.csv的内容。
Add-Content -path .\NewTest.csv -value "Col1,Col2,Col3"
$contents = Get-Content .\Test.csv
Add-Content -path .\NewTest.csv -value $contents
如果你有一个非常大的文件,我不能说这个的表现,但我不知道有任何其他方法可以做到这一点。
答案 2 :(得分:3)
这一个班轮工作得很好。
@("Header Text") + (get-content myFile.txt) | set-content myFile.txt
解释
@("Header Text")
创建一个包含一个项目的数组。 + (get-content myFile.txt)
创建一个包含两者内容的新数组。 | set-content myFile.txt
将结果通过管道设置内容并保存到文件中。答案 3 :(得分:0)
将要添加的字符串复制到新文件,然后将其余部分连接到该新文件。
答案 4 :(得分:0)
$largeFile = get-content .\largeFile.txt
$header = "Col1,Col2,Col3,Col4"
$headerArray = $header -split ' '
$headerArray + $largeFile | out-file largeFileWithHeader.txt