2009-03-18 15 views

risposta

6

La preparazione ad un file di grandi dimensioni non è un'operazione facile o rapida.

Tuttavia, Import-CSV ha un argomento "header" che è possibile utilizzare per specificare le intestazioni delle colonne, vale a dire:

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

Penso che l'argomento -header sia disponibile solo in PowerShell V2. – aphoria

0

Copiare la stringa da anteporre a un nuovo file poi concatenare il resto a quel nuovo file.

4

Sono sicuro che c'è un modo per farlo in una riga, ma funzionerà.

si Supponendo che hanno Test.csv con questi contenuti:

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

Questo codice PowerShell creerà un nuovo file, NewTest.csv, con i nomi delle colonne e aggiungere il contenuto di Test.csv.

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

Non posso parlare per le prestazioni di questo se si dispone di un file di grandi dimensioni davvero, ma non sono a conoscenza di alcun altro modo per fare questo.

+2

Per accelerare un po ', reindirizzare il contenuto Get al contenuto aggiuntivo: Get-Content. \ Test.csv | Aggiungi-contenuto -path. \ NewTest.csv – JasonMArcher

+0

Questo ha funzionato alla grande per me! – tresstylez

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

Questo rivestimento funziona perfettamente.

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

Spiegazione

  • @("Header Text") crea una matrice con una sola voce.
  • + (get-content myFile.txt) crea una nuova matrice con il contenuto di entrambi.
  • | set-content myFile.txt pipe il risultato per impostare il contenuto e salva su file.
Problemi correlati