Use grep ou outro para organizar a saída de 7z -l

Use grep ou outro para organizar a saída de 7z -l

Preciso obter os diretórios raiz de um arquivo composto em um sistema Linux. Para isso, tentei usar o 7zip (p7zip-full), pois esta ferramenta pode ler o formato de arquivo composto.

Basicamente, isso funciona muito bem, mas gera um texto analisável horrível.

http://pastebin.com/VP4ZW8jr

Portanto, minha pergunta para a comunidade é: há uma chance de analisar bem esse resultado para obter um resultado como:

  • IPC_0805_CHIP_CAP
  • Cabeçalho do arquivo
  • Biblioteca
  • Formulário Z
  • DO-214AA
  • ...

?

Preciso dessas informações dentro de um script php. então, no final, o comando será executado a partir de um script php. Se houver alguma chance de ler a estrutura do arquivo composto diretamente com o php, isso seria muito apreciado.

Obrigado

Responder1

Isso é alguma saída, e 7z não parece ter muitas opções de formato. Eu não gostaria de tentar apenas grep, mas uma combinação de head, tail e cut deve funcionar bem o suficiente para gerar apenas os nomes dos arquivos, e cortes semelhantes devem funcionar para as outras informações, teee a substituição de processos ( <()) pode ajudar. Ou apenas corte cada linha por caracteres com php (não estou familiarizado o suficiente com isso).

Com minha versão 7zr, ela tem 18 linhas de informações que não são de nome de arquivo no início e 2 linhas no final, com cada linha tendo 54 caracteres que não são de nome de arquivo no início, ajuste se o seu for diferente:

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

informação relacionada