Используйте grep или другой инструмент для приведения в порядок вывода 7z -l

Используйте grep или другой инструмент для приведения в порядок вывода 7z -l

Мне нужно получить корневые каталоги составного файла в системе Linux. Для этого я попытался использовать 7zip (p7zip-full), так как этот инструмент может читать формат составного файла.

В принципе, это работает отлично, но выводит ужасно читаемый текст.

http://pastebin.com/VP4ZW8jr

Поэтому мой вопрос к сообществу: есть ли возможность правильно проанализировать этот вывод и получить такой вывод:

  • IPC_0805_CHIP_CAP
  • ЗаголовокФайла
  • Библиотека
  • ZФорма
  • ДО-214АА
  • ...

?

Мне нужна эта информация внутри скрипта php. поэтому в конце команда будет выполнена из скрипта php. Если есть возможность прочитать структуру составного файла напрямую с помощью php, это было бы очень ценно.

Спасибо

решение1

Вот какой-то вывод, и 7z, похоже, не имеет много вариантов форматирования. Я бы не хотел пробовать просто grep, но комбинация head, tail и cut должна работать достаточно хорошо, чтобы вывести только имена файлов, и подобные сокращения должны работать для другой информации, teeи подстановка процесса ( <()) может помочь. Или просто разрежьте каждую строку по символам с помощью php (я недостаточно хорошо с ним знаком).

В моей версии 7zr в начале содержится 18 строк информации, не являющейся именем файла, и 2 строки в конце, при этом каждая строка содержит в начале 54 символа, не являющихся именем файла. Если у вас по-другому, откорректируйте:

$ 7zr l test.7z  |tail -n+18|head -n-2|cut -c54-
file1
file2
file3

Связанный контент