2013-05-08 15 views
51

Ich habe seit einiger Zeit versucht, GNU parallel zu verwenden, aber ich war nie in der Lage, es überhaupt zu funktionieren!GNU parallel funktioniert überhaupt nicht

Zum Beispiel läuft (in einem nicht-leeres Verzeichnis!):

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 

Es scheint, dass es einfach ist, jedes Argument als ein Befehl ausgeführt wird, die keinen Sinn macht.

Ich habe versucht Bash, Zsh, Tcsh, Csh und Sh, ohne Erfolg.

+0

"bash, zsh, tcsh, csh und s h "+1 für die Vollständigkeit;) –

Antwort

84

Da ich über diese Frage zu vervollständigen Schreiben, lief ich parallel --version die Version zu berichten, nur zu finden:

WARNUNG: Sie verwenden --tollef. WENN SACHEN VERSCHWINDEN --gnu.

Es ist mir nicht klar, warum dieses Flag standardmäßig festgelegt ist. Unnötig zu sagen, mit --gnu funktioniert!

Ich dachte, ich würde dies veröffentlichen, um jemand Stunden der Frustration und Verwirrung zu speichern.

EDIT: dies dauerhaft zu beheben (in Ubuntu zumindest), löschen Sie die --tollef Flagge in /etc/parallel/config

+18

--tollef wird im Ruhestand sein 20140222 http://lists.gnu.org/archive/html/parallel/2013-02/msg00018.html Es wird hilfreich sein, wenn Sie bereits jetzt Ihre Frustration lassen Ihrem Vertriebsbetreuer bekannt sein, damit der Standard geändert werden kann. –

+0

@Thor was meinst du mit "Verbesserung der Situation"? Wie beim Ändern des Standardverhaltens? – WaelJ

+0

@OleTange Das ist sehr schön zu hören! :) – WaelJ

8

auf bestimmten Betriebssystemen, sollten Sie prüfen, ob Sie tatsächlich die GNU-Version ausgeführt wird.

$ 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 

Wenn dies der Fall ist, führen Sie nicht die GNU-Version. Ubuntu 12.04 ist so, und Sie müssen manually install GNU parallel, um die Funktionalität zu erhalten, die Sie erwarten.

1

Hatte Probleme parallel als externer Befehl von FREEMAT (MATLAB Lookalike); die argumentFile wurde gelöst es nicht gefüttert auf den Befehl richtig durch:

  • --gnu zu Optionen
  • Nicht mit Syntax Befehlszeichenfolge beteiligt sind [ "]

-Code hinzu:

cmdString = 'parallel --gnu command ::: '; 
    while j<=jLength 
     cmdString = [cmdString argumentFilePath(j,:) ' ']; 
     j=j+1; 
    end 
    system(cmdString) 

Vielen Dank dafür :) Ich bin auch auf Ubuntu 12.04

Verwandte Themen