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

2

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

Isso basicamente funciona muito bem, mas gera um texto analisável horrível.

link

Então, minha pergunta para a comunidade é: existe uma chance de obter uma saída tão bem analisada para obter uma saída como:

  • IPC_0805_CHIP_CAP
  • FileHeader
  • Biblioteca
  • ZForm
  • DO-214AA
  • ...

?

Eu preciso dessa informação 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

    
por C. Hediger 17.03.2017 / 15:31

1 resposta

1

Isso é alguma saída, e o 7z não parece ter muitas opções de formatação. Eu não gostaria de tentar apenas grep, mas uma combinação de cabeça, cauda e amp; cut deve funcionar bem o suficiente para gerar apenas os nomes de arquivos, e cortes similares devem funcionar para as outras informações, tee e substituição de processos ( <() ) podem ajudar. Ou apenas cortar cada linha por caracteres com php (não estou familiarizado o suficiente com isso).

Com a minha versão 7zr, ela tem 18 linhas de informação sem nome de arquivo no início e 2 linhas no final, com cada linha contendo 54 caracteres sem nome de arquivo no começo, ajuste se a sua for diferente:

$ 7zr l test.7z  |tail -n+18|head -n-2|cut -c54-
file1
file2
file3
    
por 17.03.2017 / 15:58

Tags