GNU/Linux >> Tutoriels Linux >  >> Linux

Comment ajouter une ligne dans un fichier compressé sans décompresser ?

De man gzip vous pouvez lire ce gzip les fichiers ped peuvent simplement être concaténés :

UTILISATION AVANCÉE Plusieurs fichiers compressés peuvent être concaténés. Dans ce cas, gunzip extraira tous les membres à la fois. Par exemple :

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

  Then

        gunzip -c foo

  is equivalent to

         cat file1 file2

Cela pourrait également être fait en utilisant cat pour le gzip fichiers ped, par exemple :

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

Pour le faire sans fichier externe pour que votre ligne soit ajoutée, procédez comme suit :

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

Quelle est la taille de votre table d'employés ? À moins que vous n'ayez un million d'employés et que chaque enregistrement prenne des milliers d'octets, cela ne vaut probablement même pas la peine de compresser la sortie.

Cela ne vaut presque certainement pas la peine de le compresser lors de la création du fichier de sortie - alors pourquoi ne pas simplement sortir en texte brut non compressé, exécutez count=$(wc -l out1) ; echo "T$count" >> out1 , puis compressez-le avec gzip out1 ?

alternativement, exécutez simplement une variation de select count(*) from employee avant le spool off commande.


Je me débattais avec un défi similaire :ajouter quelques lignes à un vidage sql compressé. Ma solution était basée sur la réponse de @Fiximan

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

Linux
  1. Comment ajouter du texte à la fin du fichier sous Linux

  2. Comment ajouter facilement du texte à la fin du fichier sous Linux

  3. Comment ajouter la sortie à un fichier ?

  4. grep sans afficher le chemin/fichier :ligne

  5. Comment supprimer un fichier sans utiliser rm ?

Comment lire un fichier ligne par ligne dans Bash

Comment exécuter la commande Sudo sans mot de passe

Comment trouver la ou les lignes les plus longues dans un fichier sous Linux

Comment extraire le fichier Tar.xz sur la ligne de commande Linux

Comment utiliser la commande Gzip sous Linux ?

Comment utiliser gzip sous Linux ?