it-swarm.com.de

Wie zeige ich nur den Fortschrittsbalken an?

Zum Beispiel:

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

Wie kann ich es so aussehen lassen 

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

Ich weiß, dass Curl das kann, aber ich muss wget bekommen, um diese Arbeit zu erledigen.

53
Flan Alflani

Sie können den folgenden Filter verwenden:

progressfilt ()
{
    local flag=false c count cr=$'\r' nl=$'\n'
    while IFS='' read -d '' -rn 1 c
    do
        if $flag
        then
            printf '%s' "$c"
        else
            if [[ $c != $cr && $c != $nl ]]
            then
                count=0
            else
                ((count++))
                if ((count > 1))
                then
                    flag=true
                fi
            fi
        fi
    done
}

Verwendungszweck:

$ wget --progress=bar:force http://somesite.com/TheFile.jpeg 2>&1 | progressfilt
100%[======================================>] 15,790      48.8K/s   in 0.3s

2011-01-13 22:09:59 (48.8 KB/s) - 'TheFile.jpeg' saved [15790/15790]

Diese Funktion hängt davon ab, dass eine Sequenz von 0x0d0x0a0x0d0x0a0x0d gesendet wird, bevor die Fortschrittsleiste gestartet wird. Dieses Verhalten kann von der Implementierung abhängen.

23

Benutzen:

wget http://somesite.com/TheFile.jpeg -q --show-progress

-q - Deaktivieren Sie die Ausgabe von Wget

--show-progress - Erzwingt die Anzeige des Fortschrittsbalkens in beliebiger Ausführlichkeit

111
Lord Bo

Die Option --show-progress ist, wie bereits erwähnt, die beste Option, sie ist jedoch erst verfügbar seit GNU wget 1.16, siehe Bemerkenswerte Änderungen in wget 1.16 .

Um sicher zu gehen, können wir zunächst prüfen, ob --show-progress unterstützt wird:

# set progress option accordingly
wget --help | grep -q '\--show-progress' && \
  _PROGRESS_OPT="-q --show-progress" || _PROGRESS_OPT=""

wget $_PROGRESS_OPT ...

Vielleicht ist es an der Zeit, nur curl zu verwenden.

10
ryenus

Sie können die Option follow von tail verwenden:

wget somesite.com/TheFile.jpeg --progress=bar:force 2>&1 | tail -f -n +6

Der +6 soll die ersten 6 Zeilen löschen. Es kann in Ihrer Version von wget oder Ihrer Sprache anders sein.

Sie müssen --progress=bar:force verwenden, andernfalls wechselt wget zum dot-Typ.

Der Nachteil ist, dass die Aktualisierung weniger häufig erfolgt als bei wget (sieht aus wie alle 2 Sekunden). Die --sleep-interval-Option von tail scheint nur dafür gedacht zu sein, hat aber für mich nichts geändert.

9
Metaxal

Sie können Standardoptionen verwenden:

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

Dies ist ein weiteres Beispiel, vielleicht hilft es Ihnen

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"
}
2
user870774

Hier ist eine Lösung, die Ihnen einen Punkt für jede Datei (oder Zeile) zeigt. Dies ist besonders nützlich, wenn Sie mit --recursive herunterladen. Dies wird keine Fehler auffangen und ist möglicherweise etwas deaktiviert, wenn zusätzliche Zeilen vorhanden sind. Für den allgemeinen Fortschritt bei vielen Dateien ist dies jedoch hilfreich:

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

Dies ist buchstäblich keine Antwort, aber dieser Ausschnitt könnte auch für einige hilfreich sein, die hierher kommen, z. "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

Was für mich entscheidend war, ist stdbuf(1).

0

Verwenden Sie diese Flags:

wget  -q --show-progress --progress=bar:force 2>&1
0
Amir Khalili