Как получить несколько строк из сжатого файла .gz без распаковки - PullRequest
80 голосов
/ 16 ноября 2011

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

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

Ответы [ 4 ]

130 голосов
/ 16 ноября 2011

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

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

 gzip -cd CONN.20111109.0057.gz | head
11 голосов
/ 16 ноября 2011

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

9 голосов
/ 18 августа 2016

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

zcat < CONN.20111109.0057.gz|head

2 голосов
/ 06 июля 2018

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

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-ю строку и так далее.

...