It is a little shorter to do that using GNU Parallel:
parallel gunzip -c ::: file*.gz > final
but essentially it also writes to temporary files.
Watch the introvideos to learn more: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Ist es möglich, mehrere Dateien zu komprimieren und zu einer großen Datei zu verketten, aber bei einer Multicore-Maschine parallel? Zum Beispiel mache ich jetzt:
gunzip -c file1.gz > final gunzip -c file2.gz >> final gunzip -c file3.gz >> final gunzip -c file4.gz >> final
Kann ich dasselbe tun, damit die Gunzip-Verarbeitung der verschiedenen Dateien in verschiedenen CPUs in der Multicore-Maschine erfolgt und sie alle in derselben endgültigen Datei verkettet sind?
It is a little shorter to do that using GNU Parallel:
parallel gunzip -c ::: file*.gz > final
but essentially it also writes to temporary files.
Watch the introvideos to learn more: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Sie müssen dafür temporäre Dateien verwenden:
gunzip -c file1.gz > final & one=$! gunzip -c file2.gz > final2 & two=$! gunzip -c file3.gz > final3 & three=$! gunzip -c file4.gz > final4 & four=$! wait $one && wait $two && wait $three && wait $four cat final2 >> final cat final3 >> final cat final4 >> final
Um die Teile einer größeren Datei in die eine endgültige Datei zu dekomprimieren, müssen Sie die dekomprimierte Größe der Teile kennen. Nur dann können Sie eine leere leere Datei erstellen und die Ausgabe der Dekomprimierung an die richtige Stelle in die große Datei schreiben ( dd
z. B.). da Sie die dekomprimierte Größe nicht kennen (ohne zuerst die Teile zu dekomprimieren), funktioniert dies nicht.