Используя найти с -exec для gzip и грэп

у меня есть куча сжатых файлов журналов, и я хочу найти их все для строки. Я пробовал это, но это не работает:

find ./ -name "*.log.zip" -exec gzip -dc {} | grep ERROR ;

это дает мне:

find: incomplete statement
grep: can't open ;

Я хочу, для каждого .бревно.zip файл, распакуйте его и grep выход для "ошибки". Делать это на экс, как бы то ни было.

25
задан mluisbrown
30.03.2023 23:51 Количество просмотров материала 2745
Распечатать страницу

1 ответ

есть ошибка в вашем синтаксисе. Find ищет \; или \+, но читает |. Grep пытается открыть файл с именем";". Разница между завершением -exec точкой с запятой или плюсом - запуск команды один раз для всех файлов (+) и запуск команды один раз для каждого файла (;).

попробуйте это:

find ./ -name "*.log.zip" -exec zcat {} \+ | grep ERROR
# or
find ./ -name "*.log.zip" -exec sh -c 'zcat {} | grep ERROR' \;
0
отвечен Ярослав Рахматуллин 2023-04-01 07:39

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

aix
find
grep
shell
unix
Вверх