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