GNU/Linux >> Linux Esercitazione >  >> Linux

Linux - Argomento di coppia parallela Gnu con argomenti di input di file?

Ho un file con molte righe e su ogni riga ho gli argomenti che voglio passare in parallelo con un separatore di tabulazioni.

Eseguo questo script

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

E funziona, $hdd_file è il nome del file, grep raccoglie le righe che gli hdd hanno un certo $ssd come cache, e quindi il parallelo chiama una funzione che distrugge la loro connessione.

Ora che ho creato nuove partizioni sugli ssd puliti, provo a chiamare parallel in questo modo:

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

Che dovrebbe ottenere gli argomenti dalla pipe e accoppiarli con i numeri forniti, ma non lo fa.

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

Ho provato anche questo e continua a non funzionare. I {} :::+ vengono passati come argomenti per qualche motivo

Risposta accettata:

GNU parallel soluzione:

Esempio di input.txt (per dimostrazione):

a   b
c   d
e   f

grep '^[ac]' input.txt verrà utilizzato per emulare il comando (o la pipeline) agendo come un file sorgente di input

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

L'uscita:

a b 1
a b 2
a b 3
c d 1
c d 2
c d 3
  • :::: argfiles – tratta argfiles come sorgente di ingresso. ::: e :::: possono essere mescolati.

Per aggregare elementi da ciascuna fonte di input:aggiungi --xapply opzione:

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

L'uscita:

a b 1
c d 2

Linux
  1. Partizionare un'unità su Linux con GNU Parted

  2. Ottieni di più dalla riga di comando di Linux con GNU Parallel

  3. Lavorare con l'output di input e il reindirizzamento degli errori in Linux

  4. Ordina il comando in Linux con esempi

  5. Traccia il file .gnu con gnuplot

Comando Linux WC con esempi

Comando Grep in Linux (con esempi)

Utilizzo del comando Linux mv con esempi

Proteggi Linux con il file Sudoers

Comando di montaggio Linux con esempi

Comando gawk Linux con esempi