34 votos

¿Cómo puedo canalizar un archivo descargado a la salida estándar en bash?

¿Cómo es posible que la tubería salga wget ¿el archivo descargado? Si no es así, ¿qué alternativas debo utilizar?

51voto

Steve Mould Puntos 141
wget -O - -o /dev/null  http://google.com

13 votos

La opción -o /dev/null sólo es necesaria si realmente no le importan los errores, ya que sin ella los errores se escribirán en stderr (mientras que el archivo se escribe en stdout).

0 votos

Correcto. o puedes comprobar los códigos de error... siempre y cuando canalices la salida a un archivo y no a otro comando.

0 votos

AFAIK, no es necesario -o /dev/null porque eso va a stderr de todos modos.

36voto

GodEater Puntos 406

O utilizar curl, donde es el comportamiento por defecto.

curl http://www.google.com/

http://curl.haxx.se/

4 votos

-s no le hará daño hacerla silenciosa, particularmente con un archivo pequeño.

6voto

David Pashley Puntos 17011

Hay otros métodos que puedes utilizar en lugar de wget y curl:

Puedes usar el lince:

# lynx -source http://www.google.com

w3m:

# w3m -dump_source http://www.google.com

y libwww-perl viene con un práctico programa llamado GET (además de HEAD y POST, que hacen lo que crees que hacen)

# GET http://www.google.com

1 votos

Offtopic, pero he usado lynx en algunos de mis scripts para analizar el html automáticamente cuando he necesitado el contenido de una página y no me ha importado el marcado. Es genial para eso

0 votos

Efectivamente, tanto lynx como w3m tienen la opción -dump. Yo prefiero w3m por su soporte de tablas y marcos.

1voto

Roger Puntos 283

Así es como lo hice:

URL='http://wordpress.org/extend/plugins/akismet/'
curl -s "$URL" | egrep -o "http://downloads.wordpress.org/plugin/[^']+" | xargs wget -qO-

0voto

mj2008 Puntos 4815

Sólo para añadir otra opción: A menudo uso lwp-request, de libwww-perl, para esto. Sale a STDOUT por defecto y es más probable que curl esté instalado en los sistemas que utilizo (tu situación puede variar).

1 votos

Por cierto, Mac OS tiene curl (no wget) y creo que otros BSD también. Al igual que muchos sistemas *nix integrados que he utilizado. No estoy seguro si Perl es más común que curl.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: