92 votes

Comment puis-je afficher uniquement la barre de progression de wget ?

Par exemple :

wget http://somesite.com/TheFile.jpeg

    downloading: TheFile.tar.gz ...
    --09:30:42--  http://somesite.com/TheFile.jpeg
               => `/home/me/Downloads/TheFile.jpeg'
    Resolving somesite.co... xxx.xxx.xxx.xxx.
    Connecting to somesite.co|xxx.xxx.xxx.xxx|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1,614,820 (1.5M) [image/jpeg]

    25% [======>                              ] 614,424      173.62K/s    ETA 00:14

How can I get it to look like the following?

    downloading: TheFile.jpeg ...
    25% [======>                              ] 614,424      173.62K/s    ETA 00:14

Je sais que Curl peut faire ça. Cependant, j'ai besoin de faire en sorte que wget fasse ce travail.

1 votes

Je ne pense pas que cela soit possible sans écrire un script pour analyser la sortie de wget. wget -nv est ce qui s'en rapproche le plus, et il n'affiche pas de barre de progression, mais seulement un résumé d'une ligne lorsque le téléchargement est terminé.

3 votes

Wget --progress=bar:force:noscroll

2 votes

curl peut télécharger des fichiers et produire une simple barre de progression : echo "downloading: $file ..." && curl --progress-bar --remote-name --location "$url"

4voto

slva Points 89

Vous pouvez utiliser les options standard :

wget --progress=bar http://somesite.com/TheFile.jpeg

2voto

Voici un autre exemple :

download() {
    local url=$1
    echo -n "    "
    wget --progress=dot $url 2>&1 | grep --line-buffered "%" | sed -u -e "s,\.,,g" | awk '{printf("\b\b\b\b%4s", $2)}'
    echo -ne "\b\b\b\b"
    echo " DONE"
}

0voto

Philipp Kewisch Points 395

Voici une solution qui vous permettra d'afficher un point pour chaque fichier (ou ligne, d'ailleurs). C'est particulièrement utile si vous téléchargez avec --recursive . Cela ne détectera pas les erreurs et peut être légèrement erroné s'il y a des lignes supplémentaires, mais pour une progression générale sur un grand nombre de fichiers, c'est utile :

wget -r -nv https://example.com/files/ | \
    awk -v "ORS=" '{ print "."; fflush(); } END { print "\n" }'

-3voto

Michael Shigorin Points 141

Il ne s'agit pas d'une réponse au sens propre du terme, mais cet extrait pourrait également être utile à ceux qui cherchent par exemple "zenity wget GUI" :

LANG=C wget -O /dev/null --progress=bar:force:noscroll --limit-rate 5k http://nightly.altlinux.org/sisyphus/ChangeLog 2>&1 | stdbuf -i0 -o0 -e0 tr '>' '\n' | stdbuf -i0 -o0 -e0 sed -rn 's/^.*\<([0-9]+)%\[.*$/\1/p' | zenity --progress --auto-close

Ce qui était crucial pour moi est stdbuf(1) .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X