如何在Powershell中有效地将行预先挂起到大文件中

时间:2009-03-18 22:05:49

标签: powershell

我有一些CSV格式的大文件,我想在Powershell中使用Import-Csv命令转换为对象。但是文件缺少列标题,在使用Import-Csv之前需要添加这些文件。将这些添加到文件中的最快和最有效的方法是什么?

5 个答案:

答案 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