Extrayendo * .csv de cien cremalleras y agregando resultados


0

¿Cuál sería una manera eficiente de extraer solo todos los archivos * .csv (no otros archivos dentro) dentro de un centenar de archivos zip en un solo directorio? Luego necesito hacer un archivo grande con cada archivo CVS adjunto, aunque quitando la línea de encabezado 1 de los archivos 2, ..., n.

Si funciona bien, me gustaría usar 7-Zip's 7za.exe, la versión de línea de comando u otras soluciones que son independientes y no requieren instalación en una plataforma WinXP. Las cremalleras contienen otros datos que no necesito.

El agregado simple es fácil con file1 + file2 + ..., pero ¿qué tal si sueltas el encabezado?

Respuestas:


2

En realidad, para omitir el encabezado en Unix / Linux, necesitaría el comando 'cola'.

Puede decirle al comando 'cola' que omita la primera línea (el encabezado) haciendo lo siguiente:

tail -n+2 filename

Esto le indicará a tail que comience a leer desde la línea 2.

Para hacer esto en todos los archivos .csv en su directorio actual y agregarlos juntos, coloque lo siguiente en un script:

#!/bin/bash

for file in *.csv
do
tail -n+2 $file
done

Luego puede ejecutar este script como ./script.sh>output y la salida estará en el archivo llamado 'output'.

Desafortunadamente, no sé si algo como la cola está disponible en cualquier capacidad en Windows sin puertos.


gracias bash y el programa de cola hacen que sea fácil en algunas plataformas.
ExcelCyclist

1

Para mi vergüenza, la respuesta para extraer solo un tipo de archivo en particular de todos los archivos comprimidos en un directorio con 7Zip es simplemente:

7za.exe e *.zip *.csv

Luego, para combinar los archivos con un archivo por lotes (aunque es decepcionante, esta sola línea no se puede escribir en el símbolo del sistema)

[saved as foo.bat for example]
for %%X in (*.csv) do tail -n+2 %%X >> combined.csv

0

pero ¿qué hay de dejar caer el encabezado?

Con el comando 'head' de unix (de mingw, opench o un montón de otras utilidades) puede usar "head -n" para mostrar todas las líneas excepto las primeras 'n'


gracias, ¿está disponible en Windows sin un puerto cygwin desordenado?
ExcelCyclist

Puede obtenerlo de unxutils.sf.net (entre otros)
TML del
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.