У мене 348 zip-файлів, і я хочу знайти файл, який знаходиться в одному з zip-файлів, але unzip -l
він не працює з підказками?
Як я можу перерахувати вміст усіх .zip
файлів і grep
через об'єднаний список усіх файлів, що містяться у зіпсах?
У мене 348 zip-файлів, і я хочу знайти файл, який знаходиться в одному з zip-файлів, але unzip -l
він не працює з підказками?
Як я можу перерахувати вміст усіх .zip
файлів і grep
через об'єднаний список усіх файлів, що містяться у зіпсах?
Відповіді:
Тут використовується zipinfo
прекрасне рішення. Однак, як правило, коли ви хочете застосувати команду до списку файлів і команда не приймає список файлів, ви можете використовувати for
цикл:
for file in *.zip; do
unzip -l "$file"
done \
| grep "\.zip\|setup"
Якщо у файлі, який ви шукаєте, в ньому є пробіли типу:, your file
у регулярному виразі grep вам потрібно вийти з кожного пробілу, як нахил у нижній частині grep "\.zip\|your\ file"
.
unzip
, як бентежно.
find
замість цього.
Можна використовувати zipinfo
. Він включений в установку Ubuntu за замовчуванням. Перегляньте сторінку керівництва для отримання додаткової інформації.
Наприклад, щоб шукати зразок setup
у купі zip-файлів у поточному каталозі, використовуйте цю команду:
find ./ -iname *zip 2> /dev/null -print0 | xargs -0 zipinfo | grep setup
caution: filename not matched: case1.zip
... caution: filename not matched: case348.zip
на кожен zip, тестований на двох ОС Ubuntu, 11.10 та 12.04.
setup
і він ставить ту саму помилку, хоча він працює так:zipinfo -l * | grep "setup"
Для переліку файлів у zip-архіві можна скористатися наступною командою.
unzip -l
Для отримання архіву стисненого архіву слід скористатись утилітами для стиснення архіву, побудованими для роботи з таким типом формату архіву.
Для архівів zip:
zipgrep --help
usage: zipgrep [egrep_options] pattern zipfile [members...]
Uses unzip and egrep to search the zip members for a string or pattern.
Для архівів дьогтю:
zgrep --help
Usage: /bin/zgrep [OPTION]... [-e] PATTERN [FILE]...
Look for instances of PATTERN in the input FILEs, using their
uncompressed contents if they are compressed.
OPTIONs are the same as for 'grep'.
Є кілька інших інструментів, які також працюють з архівами. Ви можете подати трубопровід, поставлений в греп, щоб зробити те ж саме.
zcat
zcat my.archive.zip | grep "some text"
Або ви можете скористатися функцією пошуку цих інструментів
zless
zmore