2009-03-18 9 views

Respuesta

6

Anteponer a un archivo grande no es una operación fácil o rápida.

Sin embargo, Import-CSV tiene un argumento "cabecera" que se puede utilizar para especificar los encabezados de columna, es decir:

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

Creo que el argumento de encabezado solo está disponible en PowerShell V2. – aphoria

0

Copiar la cadena que desea anteponer a un nuevo archivo a continuación, concatenar el resto a ese nuevo archivo.

4

Estoy seguro de que hay una manera de hacer esto en una línea, pero esto funcionará.

Asumiendo que tienen Test.csv con estos contenidos:

1,2,3 
4,5,6 
7,8,9 

Este código PowerShell va a crear un nuevo archivo, NewTest.csv, con los nombres de columna y añadir el contenido de Test.csv.

Add-Content -path .\NewTest.csv -value "Col1,Col2,Col3" 
$contents = Get-Content .\Test.csv 
Add-Content -path .\NewTest.csv -value $contents 

que no se puede hablar con el desempeño de esta opción si tiene un archivo muy grande, pero no estoy al tanto de cualquier otra manera de hacer esto.

+2

Para acelerar un poco las cosas, canalice Get-Content a Add-Content: Get-Content. \ Test.csv | Add-Content -path. \ NewTest.csv – JasonMArcher

+0

¡Esto funcionó muy bien para mí! – tresstylez

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

Este delineador funciona muy bien.

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

Explicación

  • @("Header Text") crea una matriz con un solo elemento.
  • + (get-content myFile.txt) crea una nueva matriz con el contenido de ambas.
  • | set-content myFile.txt canaliza el resultado para configurar el contenido y guarda en el archivo.
Cuestiones relacionadas