Od man gzip
můžete si přečíst, že gzip
ped soubory lze jednoduše zřetězit:
POKROČILÉ POUŽITÍVíce komprimovaných souborů lze zřetězit. V tomto případě gunzip extrahuje všechny členy najednou. Například:
gzip -c file1 > foo.gz gzip -c file2 >> foo.gz Then gunzip -c foo is equivalent to cat file1 file2
To lze také provést pomocí cat
pro gzip
ped soubory, např.:
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
Chcete-li to provést bez externího souboru pro váš řádek, který má být připojen, postupujte následovně:
echo "this is the new line" | gzip - | cat - >> original_file.gz
Jak velký je váš zaměstnanecký stůl? Pokud nemáte milion zaměstnanců a každý záznam zabírá tisíce bajtů, pravděpodobně se vám ani nevyplatí komprimovat výstup.
Téměř jistě nestojí za to, abyste ho komprimovali, když se vytváří výstupní soubor - tak proč nevypsat pouze nekomprimovaný prostý text, spustit count=$(wc -l out1) ; echo "T$count" >> out1
a poté jej zkomprimujte pomocí gzip out1
?
případně stačí spustit nějakou variantu select count(*) from employee
před spool off
příkaz.
Zápasil jsem s podobnou výzvou:připojit pár řádků do komprimovaného výpisu SQL. Moje řešení bylo založeno na odpovědi od @Fiximan
echo 'append this string' | gzip >> out.gz