J'essaie d'utiliser GNU parallèle depuis un certain temps, mais je n'ai jamais réussi à le faire fonctionner du tout!
Par exemple, en cours d'exécution (dans un répertoire non vide!):
ls | parallel echo # Outputs single new line
ls | parallel echo echo echo # Outputs three new lines.
ls | parallel echo {} # /bin/bash: {}: command not found
ls | parallel echo '{}' # /bin/bash: {}: command not found
ls | parallel 'echo {}' # Outputs: {}
ls | parallel -IMM 'echo MM' # Outputs: MM
Il semble qu'il exécute simplement chaque argument comme une commande, ce qui n'a aucun sens.
J'ai essayé bash, zsh, tcsh, csh et sh, en vain.
Alors que j'allais terminer la rédaction de cette question, j'ai couru parallel --version
pour signaler la version, uniquement pour trouver:
AVERTISSEMENT: VOUS UTILISEZ --tollef. SI LES CHOSES AGISSENT, UTILISATION ÉTRANGÈRE --gnu.
Il n'est pas clair pour moi pourquoi ce drapeau est défini par défaut. Inutile de dire qu'en utilisant --gnu
travaillé!
J'ai pensé que je publierais ceci pour sauver quelqu'un des heures de frustration et de confusion.
EDIT: Pour résoudre ce problème de façon permanente (dans Ubuntu au moins), supprimez le --tollef
drapeau dans /etc/parallel/config
Selon votre système d'exploitation, vous devez vérifier si vous exécutez réellement la version GNU.
$ parallel --version
parallel: invalid option -- '-'
parallel [OPTIONS] command -- arguments
for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
run specified commands in parallel
Si tel est le cas, vous n'exécutez pas la version GNU. Ubuntu 12.04 est comme ça, et vous devrez installer manuellement GNU parallèle pour obtenir les fonctionnalités que vous attendez.
Eu des problèmes en parallèle en tant que commande externe de FREEMAT (sosie MATLAB); l'argumentFile n'a pas été transmis à la commande correctement résolu par:
Code:
cmdString = 'parallel --gnu command ::: ';
while j<=jLength
cmdString = [cmdString argumentFilePath(j,:) ' '];
j=j+1;
end
system(cmdString)
Merci pour cela :) Im sur Ubuntu 12.04 aussi.
Pour moi, c'était le même problème mais un problème différent. L'exécution de la commande parallel
se terminait silencieusement. Aussi parallel --version
disait invalid option
Erreur. Dans mon chemin, il n'y avait qu'un seul binaire exécutable parallèle, mais il ne détectait toujours pas.
j'ai pu le réparer comme ci-dessous:
whereis parallel
. Cela donne tous les chemins où les exécutables nommés parallèle sont présents. Pour mon cas, il n'y avait qu'un seul chemin /usr/local/bin/parallel
. L'exécution en utilisant ce chemin fonctionne très bien.~/.bashrc
ou ~/.zshrc
fichier comme alias parallel='/usr/local/bin/parallel'
Et maintenant, parallel
fonctionne comme un charme.
dev-dsk % parallel --version
GNU parallel 20190322
Copyright (C) 2007-2019 Ole Tange and Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
GNU parallel comes with no warranty.