Estoy tratando de buscar una cierta cadena en una gran cantidad de archivos csv gziped, la cadena se encuentra en la primera fila y mi idea era obtener la primera fila de cada archivo combinando find, zcat y head. Pero no puedo hacer que trabajen juntos.encontrar resultados canalizados a zcat y luego a la cabeza
$find . -name "*.gz" -print | xargs zcat -f | head -1
20051114083300,1070074.00,0.00000000
xargs: zcat: terminated by signal 13
example file:
$zcat 113.gz | head
20050629171845,1069335.50,-1.00000000
20050629171930,1069315.00,-1.00000000
20050629172015,1069382.50,-1.00000000
.. and 2 milion rows like these ...
Aunque he resuelto el problema escribiendo un script bash, interactuando sobre los archivos y escribir en un archivo temporal, sería bueno saber qué hice mal, cómo hacerlo, y si podría haber otras formas de hacerlo.
funcionó sin problemas, gracias. no sabía que podrías usar mientras y leer así, lo recordaré. – furedde
También puede usar: 'for f in * .gz; hacer zcat $ f | cabeza -n 1; hecho' – arekolek
@arekolek: que no es recursivo a menos que use 'shopt -s globstar; para f en **/*. gz', mientras que 'find' es recursivo a menos que lo limite con' -maxdepth'. –