Я пытаюсь найти строку в папке "тест".

В этой папке есть подпапки и zip-файлы. Я хочу искать в этом каталоге, чтобы найти совпадение.

я использовал

zgrep '11:57' test
zgrep '11:57' test

Но я не смог получить результат.

может кто-нибудь сказать точную команду для этого.

1 ответ1

1

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

zgrep '11:57' test/*

Но вы также хотите подкаталоги. Для этого вам нужно включить команду find .

find . -print0 | xargs -0 zgrep '11:57'

Изменить: здесь я не использовал опцию find -exec cmd {} потому что согласно этому блогу и этой теме -exec запускает отдельный экземпляр вашей команды для каждой находки. Особенно с большим количеством файлов это не эффективно. Один канал для xargs и xargs обеспечивает выполнение вашей команды как можно меньше раз, а часто только один раз.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .