GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Argument de paire parallèle Gnu avec des arguments d'entrée de fichier ?

J'ai un fichier avec de nombreuses lignes, et sur chaque ligne j'ai les arguments que je veux passer en parallèle avec un séparateur de tabulation.

J'exécute ce script

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

Et ça marche, $hdd_file est le nom du fichier, le grep collecte les lignes dont les hdds ont un certain $ssd comme cache, puis le parallèle appelle une fonction qui détruit leur connexion.

Maintenant que j'ai créé de nouvelles partitions sur les ssd nettoyés, j'essaie d'appeler en parallèle comme ceci :

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

Ce qui devrait obtenir les arguments du tube et les associer aux nombres donnés, mais ce n'est pas le cas.

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

J'ai également essayé ceci et cela ne fonctionne toujours pas. Les {} :::+ sont passés en arguments pour une raison quelconque

Réponse acceptée :

GNU parallel solution :

Exemple input.txt (pour démonstration) :

a   b
c   d
e   f

grep '^[ac]' input.txt sera utilisé pour émuler une commande (ou un pipeline) agissant comme un fichier source d'entrée

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

La sortie :

a b 1
a b 2
a b 3
c d 1
c d 2
c d 3
  • :::: argfiles – traiter les argfiles comme source d'entrée. ::: et :::: peut être mélangé.

Pour agréger les éléments de chaque source d'entrée – ajoutez --xapply choix :

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

La sortie :

a b 1
c d 2

Linux
  1. Partitionner un disque sous Linux avec GNU Parted

  2. Faites-en plus en ligne de commande Linux avec GNU Parallel

  3. Utilisation de l'entrée-sortie et de la redirection d'erreur sous Linux

  4. Commande de tri sous Linux avec des exemples

  5. Redirection d'entrée/sortie sous Linux/Unix

Commande Linux WC avec exemples

Commande Grep sous Linux (avec exemples)

Utilisation de la commande Linux mv avec des exemples

Sécurisez Linux avec le fichier Sudoers

Commande de montage Linux avec exemples

Commande Linux gawk avec exemples