it-swarm-es.com

¿Es posible canalizar desde stdin a gzip?

Si ejecuto el comando s3cmd get s3://bucket/file.gz - obtengo un resultado binario en la pantalla. Si trato de canalizar esto a gzip con s3cmd get s3://bucket/file.gz - | zcat obtengo gzip: stdin: not in gzip format.

¿Cómo puedo obtener zcat para elegir su entrada de stdin?

6
KalenGi

gzip y sus comandos auxiliares todos leen de STDIN por defecto. Podemos probar esto con una prueba realmente simple:

$ echo testing | gzip | zcat
testing

O algo más exótico para demostrar que no fue una casualidad:

$ dd if=/dev/urandom of=bigfile bs=1024 count=102400
102400+0 records in
102400+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 6.42114 s, 16.3 MB/s

$ sha1sum bigfile 
25b4832d3e738e70721d86695ea7a767a3afb229  bigfile

$ cat bigfile | gzip | zcat | sha1sum 
25b4832d3e738e70721d86695ea7a767a3afb229  -

Eso me sugiere que su salida s3cmd está sucia o malformada de alguna manera. Intente redirigir al archivo (en lugar de proporcionar un nombre de archivo real) y luego mirar la salida en algo como head. O descárguelo correctamente y compare.

11
Oli