¿Es posible invocar gnu paralelo de forma que repita la primera línea de entrada original al STDIN de cada trabajo secundario?procesamiento de un archivo CSV con headen con gnu paralelo
Tengo un archivo CSV que contiene una línea de encabezado en la parte superior. Por ejemplo:
> cat large.csv
id,count
abc,123
def,456
tengo una herramienta que puede extraer columnas por su nombre en lugar de la posición:
> csv_extract large.csv count
123
456
puedo sumar los valores de serie como:
> csv_extract large.csv count | awk '{ SUM += $1 } END { print SUM }'
579
El archivo que he real tener es mucho más grande, y la operación más compleja que la suma, pero se aplicarían los mismos principios. Me gustaría usar gnu en paralelo para procesar el archivo, pero no sé si es posible decirle a gnu en paralelo que repita el encabezado CSV para cada trabajo.
Lo ideal sería que pudiera ejecutar la operación con algo como:
> cat large.csv | parallel --pipe --repeat-first-line "csv_extract /dev/stdin count | awk '{ SUM += $1 } END { print SUM }'"
579
que he hecho hasta la opción -primera línea --repeat arriba para representar la funcionalidad no puedo averiguar. He visto los videos de YouTube y he leído la página de manual, pero no puedo ver cómo se puede hacer, si es posible.
Gracias!
- danboo
¿podría hacer una carrera por separado de 'parallel' que sólo se suma a la cabecera de todos los archivos cuando el procesamiento se realiza? O en realidad un bucle 'for', si controlas dónde y qué nombres se usan para tus archivos de salida' paralelos'. ¡Buena suerte! – shellter