Warum schlägt (GNU?) Parallel stillschweigend fehl und wie behebe ich das?

15

In einem größeren Skript zur Nachbearbeitung einiger Simulationsdaten hatte ich folgende Zeile:

parallel bnzip2 -- *.bz2

Welche, wenn ich parallelrichtig verstehe (und ich kann nicht), sollte N-Core-Threads des Programms über alle Dateien mit der aufgelisteten Erweiterung ausführen. Möglicherweise bemerken Sie, dass ich den Befehl falsch geschrieben habe bunzip2. Ich würde eine Warnung oder eine Fehlermeldung hier erwarten, aber es schlägt unbemerkt fehl. Ist das beabsichtigt? Wie komme ich in Zukunft nicht mehr daran vorbei?

Aktualisieren:

Es ist möglich, dass ich ein anderes parallelinstalliert habe als ich denke:

> 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

Eine Manpage von parallelauf meinem System gibt:

 parallel(1)                                                        parallel(1)
NAME
       parallel - run programs in parallel
....
AUTHOR
   Tollef Fog Heen

Was scheint, ist dies nicht die GNU-Version.

Süchtig
quelle
Druckt einen Fehler auf meinem System. Was parallel --versionheißt das? $ parallel bnzip2 -- * sh: bnzip2: command not found
Mikel
GNU parallel heißt "Copyright (C) 2010,2011,2012 Ole Tange, ole.tange.dk und Free Software Foundation, Inc." (Gleicher Autor seit Gründung.)
Mat

Antworten:

20

Du wurdest von der Verwechslung mit Tollefs Parallele von moreutils getroffen. Siehe https://www.gnu.org/software/parallel/history.html

Sie können GNU Parallel einfach installieren, indem Sie:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

In den Introvideos zu GNU Parallel erfahren Sie mehr: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Ole Tange
quelle
1
Es macht jetzt alles Sinn! Für die Aufzeichnung, auf Ubuntu 12 apt-get install parallelzieht sich momentan Tollefs Parallele nicht zu Ihrer GNU-Version. Vielen Dank, dass Sie mich
Hooked
1
Informationen zu Ubuntu 12 finden Sie unter Woher bekomme ich ein Paket für GNU Parallel?
Ian
12

(Ich würde das kommentieren, aber mir fehlen die Privilegien.)

Sie können wahrscheinlich auch nur verwenden parallel --gnu. Sie sagten, dass Ubuntu 12 (.04?) Die Tollef-Version verwendet, aber es ist eigentlich die Gnu-Implementierung. Aus irgendeinem Grund wird standardmäßig die Tollef-Syntax verwendet.

Ich alias parallel='parallel --gnu'habe mein Anmeldeskript erweitert, damit ich mich nicht mehr damit herumärgern muss.

billyjmc
quelle
2
Sie können auch --gnu$ HOME / .parallel / config hinzufügen .
Thor
Hinweis: Die Antwort hier bezieht sich auf einen Kommentar von @Hooked.
Nobar
Sehen Sie hier für einen anderen Ansatz und ein bisschen mehr Details zu den Versionen: askubuntu.com/a/298598/11522 .
Nobar
1
Fedora legt --tollef auch frustrierend in / etc / parallel / config ab . Als ob das nicht unangenehm genug wäre, meldet GNU parallel selbst , dass --tollef auf 20140222 entfernt wird .
Musicinmybrain