Tengo algunos archivos grandes en formato CSV que me gustaría convertir en objetos usando el comando Import-Csv
en Powershell. Sin embargo, faltan los encabezados de columna en los archivos y estos deben agregarse antes de usar Import-Csv
. ¿Cuál es la forma más rápida y eficiente de agregar esto al archivo?¿Cómo puedo predecir con precisión una línea en un archivo grande en Powershell?
Respuesta
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
Copiar la cadena que desea anteponer a un nuevo archivo a continuación, concatenar el resto a ese nuevo archivo.
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.
Para acelerar un poco las cosas, canalice Get-Content a Add-Content: Get-Content. \ Test.csv | Add-Content -path. \ NewTest.csv – JasonMArcher
¡Esto funcionó muy bien para mí! – tresstylez
$largeFile = get-content .\largeFile.txt
$header = "Col1,Col2,Col3,Col4"
$headerArray = $header -split ' '
$headerArray + $largeFile | out-file largeFileWithHeader.txt
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.
- 1. cómo recorro una línea desde un archivo csv en powershell
- 2. powershell obtener el número de líneas del archivo grande (grande)
- 3. Buscar y reemplazar en un archivo grande
- 4. Agregar saltos de línea en un archivo XML grande en una línea
- 5. ¿Cómo puedo reemplazar la primera línea de un archivo grande en Java?
- 6. Leyendo un archivo grande línea por línea o almacenando sus líneas en una matriz
- 7. Rellene una columna en un archivo CSV con POWERSHELL V2
- 8. ¿Cómo lidiar con un archivo de texto muy grande?
- 9. seleccionar -primero 1 en un archivo grande
- 10. Powershell - Cómo cumplimentar/cerrar un archivo zip en powershell
- 11. cadena reemplazar en un archivo grande con php
- 12. cómo escribir una cadena grande en línea en F #
- 13. Una línea para comprimir carpeta en PowerShell?
- 14. Desbloquear un archivo con PowerShell?
- 15. ¿Cómo leer un archivo txt grande (1 GB) en .NET?
- 16. Cómo utilizar PowerShell para eliminar espacio del final de una línea en un archivo de texto
- 17. ¿Cómo se lee CDATA en un archivo XML con PowerShell?
- 18. Intérprete en línea Powershell?
- 19. Obtener una línea en un archivo enorme con PHP
- 20. reemplazar una línea con múltiples líneas en un archivo
- 21. ¿Cómo puedo usar awk o Perl para incrementar un número en un archivo XML grande?
- 22. ¿Cómo puedo reemplazar una línea específica por número de línea en un archivo de texto?
- 23. ¿Cómo escribir XML (grande) en un archivo en C#?
- 24. En Powershell, ¿cómo puedo convertir una cadena con un "signo" final en un número?
- 25. Para comprimir un archivo grande en un ZIP con Java
- 26. ¿Cómo leer un archivo .gz línea por línea en C++?
- 27. ¿Cómo puedo detectar saltos de línea DOS en un archivo?
- 28. ¿Cómo puedo abrir un script ps1 en Powershell ISE desde la línea de comandos?
- 29. Lea un archivo grande de texto comprimido línea por línea en python
- 30. Ordenar un archivo grande en Java
Creo que el argumento de encabezado solo está disponible en PowerShell V2. – aphoria