
Мне нужно получить корневые каталоги составного файла в системе Linux. Для этого я попытался использовать 7zip (p7zip-full), так как этот инструмент может читать формат составного файла.
В принципе, это работает отлично, но выводит ужасно читаемый текст.
Поэтому мой вопрос к сообществу: есть ли возможность правильно проанализировать этот вывод и получить такой вывод:
- 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