(Un/De)komprimiert eine Zeichenkette in der bash?
Ist es möglich, zu komprimieren/Dekomprimieren, eine Zeichenfolge in der bash mit stdin/stdout ?
Habe ich versucht, dieses aber anscheinend ist es nicht unterstützt ?
hey=$(echo "hello world" | gzip -cf)
echo $hey # returns a compressed string
echo $hey | gzip -cfd
gzip: stdin is a multi-part gzip file -- not supported
Ich bin nicht bewandert in linux, aber ich lese andere komprimierungswerkzeuge man die Seiten und konnte nicht eine Lösung finden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du dies tust:
Du musst nicht gleich bytes in variable
hey
wie Sie in/tmp/myfile
erstellt von:Erhalten Sie "gzip: stdin ist ein multi-Teil gzip-Datei nicht unterstützt" Fehler einfach, weil Sie gebrochen haben, die komprimierten Daten, die nicht dekomprimiert werden.
Den
VAR=$(...)
Konstruktion ist ausgelegt für das arbeiten mit text. Dies ist, warum Sie bekommen extra trailing trimmen, zum Beispiel.Wenn 33% Komprimierungsrate Verlust ist akzeptabel für Sie, dann Sie können speichern base64-codierte komprimierte Daten:
Wird es funktionieren, aber jede 3 (komprimiert) bytes werden in 4 bytes gespeichert von text.
base64
beim komprimieren wärebase64 -w0
. Ansonsten Zeilenumbrüche Hinzugefügt, um die Ausgabe.