GNU/Linux >> Tutoriales Linux >  >> Linux

Linux – ¿Argumento de par paralelo Gnu con argumentos de entrada de archivo?

Tengo un archivo con muchas líneas, y en cada línea tengo los argumentos que quiero pasar a paralelo con un tabulador.

Ejecuto este script

cat $hdd_file | grep $ssd | parallel -C 't' clean_and_destroy

Y funciona, $hdd_file es el nombre del archivo, el grep recopila las líneas cuyos discos duros tienen un cierto $ssd como caché, y luego el paralelo llama a una función que destruye su conexión.

Ahora que hice nuevas particiones en los ssd limpios, trato de llamar al paralelo así:

cat $hdd_file | grep $ssd | parallel -C 't' create_new_cache :::+ `seq $partitions_per_ssd`

Que debería obtener los argumentos de la canalización y emparejarlos con los números dados, pero no lo hace.

cat $hdd_file | grep $ssd | parallel -C 't' create_new_cache ::: {} :::+ `seq $partitions_per_ssd`

También probé esto y todavía no funciona. Los {} :::+ se pasan como argumentos por alguna razón

Respuesta aceptada:

GNU parallel solución:

Muestra input.txt (para demostración):

a   b
c   d
e   f

grep '^[ac]' input.txt se usará para emular el comando (o canalización) que actúa como archivo fuente de entrada

parallel -C 't' echo :::: <(grep '^[ac]' input.txt) ::: $(seq 1 3)

La salida:

a b 1
a b 2
a b 3
c d 1
c d 2
c d 3
  • :::: argfiles – tratar argfiles como fuente de entrada. ::: y :::: se puede mezclar.

Para agregar elementos de cada fuente de entrada, agregue --xapply opción:

parallel -C 't' --xapply echo :::: <(grep '^[ac]' input.txt) ::: $(seq 1 2)

La salida:

a b 1
c d 2

Linux
  1. Particionar una unidad en Linux con GNU Parted

  2. Trabajar con entrada, salida y redirección de errores en Linux

  3. Permisos de archivo en Linux con ejemplo

  4. Verifique los permisos de archivos de Linux con ls

  5. Trazar archivo .gnu con gnuplot

Comando WC de Linux con ejemplos

Comando Grep en Linux (con ejemplos)

Uso del comando Linux mv con ejemplos

Asegure Linux con el archivo Sudoers

Comando de montaje de Linux con ejemplos

Comando gawk de Linux con ejemplos