GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie fügt man eine Zeile in eine gezippte Datei ein, ohne sie zu entpacken?

Von man gzip Sie können diesen gzip lesen ped-Dateien können einfach verkettet werden:

ERWEITERTE VERWENDUNGMehrere komprimierte Dateien können verkettet werden. In diesem Fall extrahiert gunzip alle Mitglieder auf einmal. Zum Beispiel:

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

  Then

        gunzip -c foo

  is equivalent to

         cat file1 file2

Dies könnte auch mit cat geschehen für gzip ped-Dateien, z. B.:

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

Um dies ohne externe Datei für Ihre anzuhängende Zeile zu tun, gehen Sie wie folgt vor:

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

Wie groß ist Ihr Mitarbeitertisch? Wenn Sie nicht eine Million Mitarbeiter haben und jeder Datensatz Tausende von Bytes benötigt, lohnt es sich wahrscheinlich nicht einmal, die Ausgabe zu komprimieren.

Es lohnt sich mit ziemlicher Sicherheit nicht, sie zu komprimieren, während die Ausgabedatei erstellt wird - warum also nicht einfach in unkomprimierten Klartext ausgeben, führen Sie count=$(wc -l out1) ; echo "T$count" >> out1 aus , und dann mit gzip out1 komprimieren ?

Alternativ führen Sie einfach eine Variante von select count(*) from employee aus vor dem spool off Befehl.


Ich hatte mit einer ähnlichen Herausforderung zu kämpfen:ein paar Zeilen an einen komprimierten SQL-Dump anzuhängen. Meine Lösung basierte auf der Antwort von @Fiximan

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

Linux
  1. So fügen Sie unter Linux Text an das Dateiende an

  2. So fügen Sie unter Linux einfach Text an das Dateiende an

  3. Wie verschiebt man eine Zeile in einer Textdatei um eine Zeile nach oben oder unten?

  4. Wie fügt man mehrere Zeilen an eine Datei an?

  5. grep ohne Pfad/Datei:Zeile anzuzeigen

So lesen Sie eine Datei Zeile für Zeile in Bash

So führen Sie den Sudo-Befehl ohne Passwort aus

So finden Sie die längste(n) Zeile(n) in einer Datei in Linux

So extrahieren Sie die Tar.xz-Datei in der Linux-Befehlszeile

Wie verwende ich den Gzip-Befehl unter Linux?

Wie verwende ich gzip unter Linux?