问题
How to get the first few lines from a gziped file ? I tried zcat, but its throwing an error
zcat CONN.20111109.0057.gz|head
CONN.20111109.0057.gz.Z: A file or directory in the path name does not exist.
回答1:
zcat(1)
can be supplied by either compress(1)
or by gzip(1)
. On your system, it appears to be compress(1)
-- it is looking for a file with a .Z
extension.
Switch to gzip -cd
in place of zcat
and your command should work fine:
gzip -cd CONN.20111109.0057.gz | head
Explanation
-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.
回答2:
On some systems (e.g., Mac), you need to use gzcat
.
回答3:
On a mac you need to use the <
with zcat:
zcat < CONN.20111109.0057.gz|head
回答4:
If a continuous range of lines needs be, one option might be:
gunzip -c file.gz | sed -n '5,10p;11q' > subFile
where the lines between 5th and 10th lines (both inclusive) of file.gz
are extracted into a new subFile
. For sed
options, refer to the manual.
If every, say, 5th line is required:
gunzip -c file.gz | sed -n '1~5p;6q' > subFile
which extracts the 1st line and jumps over 4 lines and picks the 5th line and so on.
来源:https://stackoverflow.com/questions/8151380/how-to-get-few-lines-from-a-gz-compressed-file-without-uncompressing