Dado um arquivo zip zipfile.zip
, sabemos que ele contém um arquivo chamado text.txt
.
Existe uma maneira de ler o conteúdo text.txt
sem descompactar zipfile.zip
?
Dado um arquivo zip zipfile.zip
, sabemos que ele contém um arquivo chamado text.txt
.
Existe uma maneira de ler o conteúdo text.txt
sem descompactar zipfile.zip
?
Você pode despejar o arquivo diretamente no stdout, por exemplo. Você ainda está descompactando tecnicamente, mas não no disco:
Por exemplo, para contar as linhas, você pode fazer isso:
A
-c
opção é semelhante, mas escreverá o nome de cada arquivo extraído logo antes do conteúdo.O libarchive
bsdtar
oferece suporte a uma ampla variedade de formatos de arquivo, incluindo infozip / pkzip, para que você possa usar a mesma CLI para todos eles:Despeja o conteúdo do(s) membro(s) do arquivo nomeado(s)
text.txt
em stdout. Adicione aq
opção de parar no primeiro (na prática, geralmente há apenas uma entrada por um determinado caminho em um arquivo).Você faria o mesmo com arquivos
tar
,tgz
,iso
,ar
,cpio
,7z
etc.Se o arquivo zip contiver um único arquivo, você pode usar
Esses comandos também funcionam em arquivos gzipados. Existem comandos semelhantes para bzip e xzip
Você também pode usar comandos que conheçam os formatos de compactação. Exemplo: