2017-12-29 6 views
1

Ich habe ein Verzeichnis von 130000 + .tif Dateien. Ich möchte find mit GNU parallel verwenden. Alle meine Dateien sind im Muster und in der Reihenfolge von k-001 bis k-163 benannt. Eine der Herausforderungen ist die Übereinstimmung 001 mit seq 1.GNU parallele Verschachtelung

Ich habe versucht, dieses:

seq 111 163 | parallel -j10 find . -name 'k-{}\*' -print0 | parallel -0 'tesseract {/} /mnt/ramdisk/output/{/.} > /dev/null 2>&1' 

Ich bin nicht von der seq Teil immer Parallelität. Wo gehe ich falsch?

Antwort

1

nicht sicher, was die eigentliche Frage ist, aber Sie können Zero-Padding wie diese erzeugen, wenn das das Problem ist:

printf "%03d\n" {0..10} | parallel -k echo 
000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
+0

ich viel von Ihnen gelernt haben. So dankbar. Welche Regel gilt für die Anzahl der CPU-Kerne und die Anzahl der Jobs? Ich bekomme Probleme, wenn ich die Anzahl der Jobs erhöhe, aber die Standard-Jobanzahl (4 auf meinem Computer) ist zu niedrig für meine Datenmenge. – Naveed

+1

Standardmäßig führt ** GNU Parallel ** einen Job pro CPU-Kern aus, den er erkennt - überprüfen Sie mit 'parallel - Anzahl der Kerne'. Sie können den Grad der Parallelität mit '-j' ändern. Wenn Sie also "-j 32" verwenden, werden 32 Jobs gleichzeitig ausgeführt. Oder Sie können als Prozentsatz angeben, mit '-j 200%', die doppelt so viele Jobs ausführen, wie Sie Kerne gleichzeitig haben. HTH. Sonst lies dir die ausführlichen Beispiele durch ... https://www.gnu.org/software/parallel/parallel_tutorial.html –

+0

Wenn du _really_ parallel viele Jobs ausführen willst: https: //www.gnu .org/software/parallel/man.html # BEISPIEL: -Laufende-mehr-als-250-Jobs-Workaround –