GNU/Linux >> Linux Esercitazione >  >> Linux

Come aggiungere una riga in un file zippato senza decomprimere?

Da man gzip puoi leggere quel gzip ped possono essere semplicemente concatenati:

UTILIZZO AVANZATO È possibile concatenare più file compressi. In questo caso, gunzip estrarrà tutti i membri contemporaneamente. Ad esempio:

        gzip -c file1  > foo.gz
        gzip -c file2 >> foo.gz

  Then

        gunzip -c foo

  is equivalent to

         cat file1 file2

Questo potrebbe anche essere fatto usando cat per il gzip ped, ad esempio:

seq 1 4 > A && gzip A
echo 5 > B && gzip B
#now 1 to 4 is in A.gz and 5 in B.gz, we want 1 to 5 in C.gz:
cat A.gz B.gz > C.gz && zcat C.gz
1
2
3
4
5
#or for appending B.gz to A.gz:
cat B.gz >> A.gz

Per farlo senza un file esterno per la tua riga da aggiungere, procedi come segue:

echo "this is the new line" | gzip - | cat - >> original_file.gz

Quanto è grande il tuo tavolo dei dipendenti? A meno che tu non abbia un milione di dipendenti e ogni record richieda migliaia di byte, probabilmente non vale nemmeno la pena di comprimere l'output.

Quasi certamente non vale la pena di comprimerlo mentre viene creato il file di output - quindi perché non eseguire l'output solo in testo normale non compresso, eseguire count=$(wc -l out1) ; echo "T$count" >> out1 , quindi comprimerlo con gzip out1 ?

in alternativa, basta eseguire qualche variazione di select count(*) from employee prima del spool off comando.


Stavo lottando con una sfida simile:aggiungere alcune righe a un dump sql compresso. La mia soluzione era basata sulla risposta di @Fiximan

echo 'append this string' | gzip >> out.gz

Linux
  1. Come spostare una riga in un file di testo su o giù di una riga?

  2. Come aggiungere più righe a un file?

  3. Come aggiungere l'output a un file?

  4. VIM:come andare alla riga esatta su Ubuntu

  5. Come rimuovere un file senza usare rm?

Come leggere un file riga per riga in Bash

Come eseguire il comando Sudo senza password

Come trovare le righe più lunghe in un file in Linux

Come estrarre il file Tar.xz sulla riga di comando di Linux

Come utilizzare il comando Gzip in Linux?

Come usare gzip in Linux?