Как "grep -a" без завершающих строк?

El comando apt installno instala archivos .deb. Para instalar el archivo deb wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb, use dpkg -i wkhtmltox_0.12.5-0.20180604.140.rc~6f77c46~bionic_amd64.deb. dpkg -ise utiliza para instalar archivos .deb.

1
05.07.2019, 10:26
2 ответа

Один из способов — преобразовать символы NUL (, которые часто разграничивают строки в двоичных файлах ), в символы новой строки перед поиском, который будет работать для tarфайлов, как в вашем случае, но, возможно, для других форм двоичных файлов :

. ]
file=xxx.tar.gz

zcat -f < "$file" | tr '\0' '\n' | grep -a inside
1
27.01.2020, 23:15

Мусор, который вы получаете, — это заголовки TAR, потому что ваш tarball — это файл, инкапсулированный в архив TAR, а затем сжатый с помощью GZIP.

Лучший способ получить архив — это:

tar -xzOf aaa.tar.gz | grep inside
  • x:выписка
  • z:архив сжат GZIP
  • O:вывод на стандартный вывод (при условии GNU tarили libarchivebsdtar)
  • f:архив для извлечения

Вам не нужна опция " -a" команды grep, потому что вывод tar уже представляет собой обычный текст (при условии, что он содержит только текстовые файлы ).

1
27.01.2020, 23:15

Теги

Похожие вопросы