Подтвердить что ты не робот

Как получить несколько строк из сжатого файла .gz без разжатия

Как получить первые несколько строк из файла gziped? Я пробовал zcat, но его выброс ошибки

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

Ответ 1

zcat(1) может поставляться либо compress(1), либо gzip(1). В вашей системе он выглядит как compress(1) - он ищет файл с расширением .Z.

Переключитесь на gzip -cd вместо zcat, и ваша команда должна работать нормально:

 gzip -cd CONN.20111109.0057.gz | head

Объяснение

   -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

В некоторых системах (например, Mac) вам нужно использовать gzcat.

Ответ 3

На mac вам нужно использовать < с zcat:

zcat < CONN.20111109.0057.gz|head

Ответ 4

Если нужен непрерывный диапазон строк, один из вариантов может быть следующим:

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

где строки между 5-й и 10-й строками (обе включительно) из file.gz извлекаются в новый subFile. Для опций sed см. руководство.

Если требуется каждая, скажем, 5-я строка :

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

который извлекает 1-ю строку, перепрыгивает через 4 строки и выбирает 5-ю строку и так далее.