Komprimieren Sie Dateien beim Lesen von Daten aus STDIN


Antworten:


180

Ja, verwenden Sie dazu gzip. Der beste Weg ist, Daten als Eingabe zu lesen und die komprimierte zur Ausgabedatei umzuleiten, d. H.

cat test.csv | gzip > test.csv.gz

cat test.csvsendet die Daten als stdout und mit dem Pipe-Sign liest gzip diese Daten als stdin. Stellen Sie sicher, dass Sie die gzip-Ausgabe in eine Datei umleiten, da komprimierte Daten nicht in das Terminal geschrieben werden.


4
Beachten Sie, dass die Dateien test.csv.gz die Größe 0 haben, bis der Datenfluss geschlossen wird.
MUY Belgien

... und wie macht man das? Ist es wirklich eine separate Frage?
Russellpierce

9
Dies funktioniert auch mit xz:mysqldump mydb | xz > dbdump.sql.xz
Jeroen

1
Könnte verwendet werden -9, Standardkomprimierungsstufe ist -6.
Pablo A

110

Ja, gziplassen Sie das tun. Wenn Sie einfach ausführen gzip > foo.gz, wird STDIN in die Datei foo.gz komprimiert. Sie können auch Daten hineinpfeifen, wie z some_command | gzip > foo.gz.


1

gzip > stdin.gzvielleicht? Andernfalls müssen Sie Ihre Frage konkretisieren.

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.