web-dev-qa-db-fra.com

Comment obtenir quelques lignes d'un fichier compressé .gz sans décompresser

Comment obtenir les premières lignes d'un fichier gziped? J'ai essayé zcat, mais sa lance une erreur

zcat CONN.20111109.0057.gz|head
CONN.20111109.0057.gz.Z: A file or directory in the path name does not exist.
80
Govind Kailas

zcat(1) peut être fourni par compress(1) ou par gzip(1). Sur votre système, il semble que ce soit compress(1) - il recherche un fichier avec un .Z _ extension.

Basculer vers gzip -cd à la place de zcat et votre commande devrait fonctionner correctement:

 gzip -cd CONN.20111109.0057.gz | head
131
sarnold

Sur certains systèmes (Mac, par exemple), vous devez utiliser gzcat.

12
Marcelo Cantos

Sur un mac, vous devez utiliser le < avec zcat:

zcat < CONN.20111109.0057.gz|head

9
punkrockpolly

Si une plage continue de lignes doit être, une option pourrait être:

gunzip -c file.gz | sed -n '5,10p;11q' > subFile

où les lignes entre la cinquième et la dixième ligne (les deux inclus) de file.gz sont extraits dans un nouveau subFile. Pour les options sed, reportez-vous à le manuel .

Si toutes les 5 lignes, par exemple sont obligatoires:

gunzip -c file.gz | sed -n '1~5p;6q' > subFile

qui extrait la 1ère ligne et saute sur 4 lignes et prend la 5ème ligne et ainsi de suite.

2
KutalmisB