Como listar arquivos em um zip sem informações extras na linha de comando

28

Na minha linha de comando bash, quando eu uso unzip -l test.zip eu recebo a saída assim:

Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
   810000  05-07-2014 15:09   file1.txt
   810000  05-07-2014 15:09   file2.txt
   810000  05-07-2014 15:09   file3.txt
---------                     -------
  2430000                     3 files

Mas estou interessado apenas nas linhas que contêm os detalhes do arquivo.

Eu tentei fazer filtragem usando o grep assim:

unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v Archive | grep -v " files"

Mas é longo e propenso a erros (por exemplo, um arquivo com o nome Arquivo nesta lista será eliminado)

Existe alguma outra opção com o unzip -l (verifiquei a página de manual do unzip e não encontrei nenhuma) ou outra ferramenta para fazer isso?

É importante para mim não descompactar o arquivo, mas apenas ver quais arquivos estão nele.

    
por рüффп 07.05.2014 / 15:23

1 resposta

39
zipinfo -1 file.zip

Ou:

unzip -Z1 file.zip

listaria apenas os arquivos.

Se você ainda quiser informações adicionais para cada nome de arquivo, poderá fazer:

unzip -Zl file.zip | sed '1,2d;$d'

Ou:

unzip -l file.zip | sed '1,3d;$d' | sed '$d'

Ou (assumindo o GNU head ):

unzip -l file.zip | tail -n +4 | head -n -2
    
por 07.05.2014 / 15:27