Descompacte o arquivo com mais de uma entrada

3

Estou tentando descompactar o arquivo ~ 8GB .zip canalizado do comando curl . Tudo que tentei está sendo interrompido em < 1GB e retorna uma mensagem:

... has more than one entry--rest ignored

Eu tentei: funzip , gunzip , gzip -d , zcat , ... também com argumentos diferentes - tudo acabou na mensagem acima.

O arquivo de dados é público, por isso é fácil reproduzir o problema:

curl -L https://archive.org/download/nycTaxiTripData2013/faredata2013.zip | funzip > datafile
    
por Oleg Shirokikh 22.06.2015 / 07:59

1 resposta

6

Os comandos que você está usando só podem extrair dados da primeira entrada em um arquivo ZIP; isso é mencionado explicitamente na funzip manpage :

funzip without a file argument acts as a filter; that is, it assumes that a ZIP archive (or a gzip'd(1) file) is being piped into standard input, and it extracts the first member from the archive to stdout.

faredata2013.zip contém várias entradas, portanto, você precisa usar unzip para extraí-las. Se você quiser extraí-los para stdout , você pode usar unzip com a opção -c , e adicionar -q se você quiser apenas o conteúdo bruto de todos os arquivos no arquivo. ( -c extrai o conteúdo do arquivo para stdout , por padrão com um cabeçalho dando o nome de cada arquivo antes de seu conteúdo; -q extrai sem a saída dos nomes dos arquivos). Você também pode usar a opção -p em vez de -c e -q .

    
por 22.06.2015 / 10:34

Tags