У меня есть большой zip-архив, и я хочу знать, что в нем содержится. Я знаю, что могу бегать:
zipinfo file.zip
но вывод слишком подробный и есть много файлов в подкаталогах.
Я хочу увидеть список файлов на верхнем уровне.
пример
Если нормальный вывод:
-sh-3.2$ zipinfo file.zip
Archive: file.zip 999999999 bytes 99999 files
-rw-r--r-- 2.3 unx 3894 tx defN 3-Jul-11 13:11 file1
drwxr-xr-x 2.3 unx 0 bx stor 23-Feb-12 21:00 dir1/
-rw-r--r-- 2.3 unx 269 tx defN 23-Oct-11 14:34 dir1/file2
drwxr-xr-x 2.3 unx 0 bx stor 25-Sep-11 03:53 dir1/subdir1/
...
drwxr-xr-x 2.3 unx 0 bx stor 23-Feb-12 21:00 dir2/
...
Мне нужна команда, которая выведет:
-sh-3.2$ <answer>
Archive: file.zip 999999999 bytes 99999 files
-rw-r--r-- 2.3 unx 3894 tx defN 3-Jul-11 13:11 file1
drwxr-xr-x 2.3 unx 0 bx stor 23-Feb-12 21:00 dir1/
drwxr-xr-x 2.3 unx 0 bx stor 23-Feb-12 21:00 dir2/
drwxr-xr-x 2.3 unx 0 bx stor 23-Feb-12 21:00 dir3/
...
Вы можете отфильтровать вывод с помощью grep. Здесь я говорю grep скрыть все строки, содержащие косую черту '/' и все, что после косой черты:
zipinfo file.zip | grep -v "/."
Расширяя и опираясь на ответ @ dvb, вы можете установить уровень глубины с помощью расширенных регулярных выражений:
zipinfo file.zip | egrep "^([^/]*/?){<deepness-level>}$"