2016-09-07 5 views
0

Есть ли способ найти все файлы в архиве tar.gz, содержащие определенную строку, и извлечь эти файлы только в указанную папку?Найти строку в tar.gz и получить результат

zgrep -a 'stringtofind' inArchive.tar.gz дает мне результат, в котором файлы могут быть найдены, но я не могу ничего сделать, не извлекая весь архив.

Есть ли способ обойти это?

EDIT: Я не нужно использовать zgrep, любой вариант, там будет достаточно для меня, так же, как его относительно быстрых операций

ответ

0

(Предполагается, что GNU дегтя, я думаю) Вы могли бы попробовать что-то вроде

zgrep -a 'stringtofind' inArchive.tar.gz> your.list

затем

деготь ZXF inArchive.tar.gz --files-с = your.list

+0

EDIT: Да, используя GNU tar 1.23. Я попробовал ваше предложение, но оно действительно не работает. > Your.list просто сбрасывает содержимое всего файла в список, а затем при попытке tar использовать -files-from = your.list im, просто получая ошибки. Может быть, это сработает, если я смогу подтолкнуть имена файлов только к> your.list? – user1988591

+0

Справа. Я предполагал, что ваш zgrep уже выводит (просто) имена файлов, но я полагаю, что это не так. Хммм. –