GNU/Linux >> Linux Esercitazione >  >> Linux

(Un/De)comprimere una stringa in bash?

Se per te è accettabile una perdita del tasso di compressione del 33%, puoi archiviare i dati compressi con codifica Base64:

me$mybox$ FOO=$(echo "Hello world" | gzip | base64 -w0) # compressed, base64 encoded data
me$mybox$ echo $FOO | base64 -d | gunzip # use base64 decoded, uncompressed data
Hello world

Funzionerà, ma ogni 3 byte (compressi) verrà memorizzato in 4 byte di testo.


Quando lo fai:

hey=$(echo "hello world" | gzip -cf)

Non hai gli stessi stessi byte nella variabile hey come hai in /tmp/myfile creato da:

echo "hello world" | gzip -cf > /tmp/myfile

Ottieni l'errore "gzip:stdin è un file gzip in più parti -- non supportato" semplicemente perché hai dati compressi interrotti che non possono essere decompressi.

Il VAR=$(...) la costruzione è progettata per lavorare con il testo. Questo è il motivo per cui, ad esempio, ottieni un taglio finale extra.


Linux
  1. Come trovare la lunghezza della corda in Bash [Suggerimento rapido]

  2. In Bash, come aggiungo una stringa dopo ogni riga in un file?

  3. URL che codifica una stringa nello script bash

  4. usando random per generare una stringa casuale in bash

  5. bash - trova la posizione dell'indice della stringa della sottostringa

Come verificare se una stringa contiene una sottostringa in Bash

Sostituzione di String in Bash

Bash Scripting – Manipolazione di stringhe

Interfacce utente con finestra di dialogo. Scripting Bash(IV)

Bash Beginner Series #6:Operazioni con le stringhe in Bash

Sostituzione di una sottostringa con un'altra stringa in Bash