Comment récupérer les premières lignes d'un fichier gzip? J'ai essayé zcat, mais ça 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.
zcat(1)
peut être fourni par compress(1)
ou par gzip(1)
. Sur votre système, cela semble être compress(1)
- il recherche un fichier avec une .Z
extension.
Basculez sur gzip -cd
à la place de zcat
et votre commande devrait fonctionner correctement:
gzip -cd CONN.20111109.0057.gz | head
Explication
-c --stdout --to-stdout
Write output on standard output; keep original files unchanged. If there are several input files, the output consists of a sequence of independently compressed members. To obtain better compression, concatenate all input files before compressing
them.
-d --decompress --uncompress
Decompress.
tar -xzOf some_huge_file.tar.gz | head
zless file.gz | head
.zmore
vous laisse toujours avec un tuyau cassé.zless
semble être la voie à suivre.Sur certains systèmes (par exemple, Mac), vous devez utiliser
gzcat
.la source
Sur un Mac, vous devez utiliser
<
avec zcat:zcat < CONN.20111109.0057.gz|head
la source
Si une plage continue de lignes est nécessaire, une option peut être:
gunzip -c file.gz | sed -n '5,10p;11q' > subFile
où les lignes entre les 5e et 10e lignes (toutes deux incluses) de
file.gz
sont extraites dans un nouveausubFile
. Pour lessed
options, reportez-vous au manuel .Si chaque, disons, la cinquième ligne est requise:
gunzip -c file.gz | sed -n '1~5p;6q' > subFile
qui extrait la 1ère ligne et saute sur 4 lignes et sélectionne la 5ème ligne et ainsi de suite.
la source
Cet extrait de code awk vous permettra d'afficher non seulement les premières lignes, mais également une plage que vous pouvez spécifier. Il ajoutera également les numéros de ligne dont j'avais besoin pour déboguer un message d'erreur pointant vers une certaine ligne dans un fichier gzippé.
Voici l'extrait awk utilisé dans la seule ligne ci-dessus. Dans awk NR est une variable intégrée (Nombre d'enregistrements trouvés jusqu'à présent) qui équivaut généralement à un numéro de ligne. les variables from et to sont récupérées depuis la ligne de commande via les options -v.
la source