2009-03-18 2 views
5

У меня есть несколько больших файлов в формате CSV, которые я хотел бы превратить в объекты с помощью команды Import-Csv в Powershell. Однако в файлах отсутствуют заголовки столбцов, и их необходимо добавить до использования Import-Csv. Какой самый быстрый и эффективный способ добавить их в файл?Как эффективно отложить строку до большого файла в Powershell

ответ

6

Подготовка к большому файлу - непростая или быстрая операция.

Однако, импорт-CSV действительно есть «заголовок» аргумент, который можно использовать, чтобы указать заголовки столбцов, то есть:

$header = 'Foo', 'Bar', 'Baz' 
import-csv .\myfile.csv -header $header 
+0

Я думаю, что аргумент -header доступен только в PowerShell V2. – aphoria

0

Скопируйте строку вы хотите вставляться в новый файл, то сцепить остальное к этому новому файлу.

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

Чтобы немного ускорить работу, передайте Get-Content для добавления контента: Get-Content. \ Test.csv | Add-Content -path. \ NewTest.csv – JasonMArcher

+0

Это отлично подойдет для меня! – tresstylez

0
$largeFile = get-content .\largeFile.txt 
$header = "Col1,Col2,Col3,Col4" 
$headerArray = $header -split ' ' 
$headerArray + $largeFile | out-file largeFileWithHeader.txt 
3

Этот один лайнер прекрасно работает.

@("Header Text") + (get-content myFile.txt) | set-content myFile.txt 

Объяснение

  • @("Header Text") создает массив с одним элементом.
  • + (get-content myFile.txt) создает новый массив с содержимым того и другого.
  • | set-content myFile.txt выводит результат на установочное содержание и сохраняет в файл.
Смежные вопросы