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.


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


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.