Ausgabe von wget formatieren

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von panzaeron, 22.10.2006.

  1. #1 panzaeron, 22.10.2006
    panzaeron

    panzaeron Jungspund

    Dabei seit:
    22.09.2006
    Beiträge:
    19
    Zustimmungen:
    0
    Hallo,

    ich möchte in einem Skript die Ausgabe von wget formatieren.
    Genau genommen möchte ich aus dieser Ausgabe von wget (wget ftp://xxx.xxx.xxx.xxx/usw.):
    Code:
    [FONT="Courier New"]--02:50:38-- [url]ftp://xxx.xxx.xxx.xxx/usw[/url].
                 => `usw.'
    Connecting to xxx.xxx.xxx.xxx:21... connected.
    Logging in as anonymous ... Logged in!
    ==> SYST ... done.    ==> PWD ... done.
    ==> TYPE I ... done.  ==> CWD /usw. ... done.
    ==> PASV ... done.    ==> RETR usw. ... done.
    
        [            <=>                     ] 956       125,45K/s
    
    02:50:38 (125,45 KB/s) - `usw.' saved [956]
    
    [/FONT]
    nur folgende variable Zeile während des Downloads angezeigt haben:

    Code:
    [FONT="Courier New"]    [            <=>                     ] 956       125,45K/s[/FONT]
    Ich hab schon einiges mit sed probiert, aber dass hat nicht funktioniert, geht das überhaupt?
    Und wenn ja, wie müsste ich sowas in meinem Shell-Skript umsetzen?
    Bin für jede Hilfe dankbar...
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 root1992, 22.10.2006
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    Ich würde es mit C und Ncurses machen, denn der <=> Balken bewegt sich ja.
     
  4. #3 panzaeron, 22.10.2006
    panzaeron

    panzaeron Jungspund

    Dabei seit:
    22.09.2006
    Beiträge:
    19
    Zustimmungen:
    0
    Hmm, c ist zu aufwändig und ncurses steht nicht zur Verfügung. Ich hab es mit konstrukten wie diesem versucht:
    Code:
    [FONT="Courier New"]echo `wget ftp://xxx.xxx.xxx.xxx/usw. | sed -n '|^ \{4\}\[|p`[/FONT]
    Aber bin damit nicht erfolgreich gewesen :( Noch einen Tip, eventuell mit awk (wobei ich mich mit awk noch weniger auskenne als mit sed)?
     
  5. #4 root1992, 22.10.2006
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    Wenn der wget immer die selbe Anzahl der Zeilen hat, dann kannst du ja schon mal mit head die oberen wegschneiden, dann die Zeile, die du brauchst rausschneiden. Dann wenn alles Leerzeichen sind, kansnt du mit cut ja die Feldtrenner setzen und es dann ausgeben.
     
  6. #5 panzaeron, 22.10.2006
    panzaeron

    panzaeron Jungspund

    Dabei seit:
    22.09.2006
    Beiträge:
    19
    Zustimmungen:
    0
    Danke für den Tip, aber das funktioniert leider nicht, ich hab folgendes probiert:
    Code:
    [FONT="Courier New"]echo `wget ftp://xxx.xxx.xxx.xxx/usw. | head -q -n 9 | tail -q -n 1`[/FONT]
    Dadurch sollte eigentlich nur die Zeile mit der Downloadanzeige übrig bleiben, aber leider hat das Konstrukt keinen Einfluss auf die Ausgabe. Irgendwas an der Ausgabe von wget ist anders als sonst. :think: Mn kann die Ausgabe irgendwie nicht auswerten :(
     
  7. #6 root1992, 22.10.2006
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    Ich denke ich hab eine Lösung.
    Das Programm:
    Code:
    #include <stdio.h>
    
    int main(int argc,int *argv[]){
    if (argc<2){
    printf("Bitte Dateinamen angeben");
    exit(1);
    }
    FILE *fp;
    char *dname=argv[1];
    char puffer[2];
    int zeigen;
    zeigen=0;
    fp=fopen(dname,"r");
    	while((puffer[0]=fgetc(fp))!=EOF){
    		if (puffer[0]=='[')
    		zeigen=1;
    		if (puffer[0]=='\n'&&zeigen==1)
    		break;
    		
    		if (zeigen)
    		printf("%c",puffer[0]);	
    	}
    printf("\n");
    
    fclose(fp);
    
    	return 0;
    }
    
    Macht aus
    Code:
    --02:50:38-- ftp://xxx.xxx.xxx.xxx/usw.
                 => `usw.'
    Connecting to xxx.xxx.xxx.xxx:21... connected.
    Logging in as anonymous ... Logged in!
    ==> SYST ... done.    ==> PWD ... done.
    ==> TYPE I ... done.  ==> CWD /usw. ... done.
    ==> PASV ... done.    ==> RETR usw. ... done.
    
        [            <=>                     ] 956       125,45K/s
    
    02:50:38 (125,45 KB/s) - `usw.' saved [956]
    
    das:
    Code:
    [            <=>                     ] 956       125,45K/s
    
    Das Programm liest die Ausgabe vom Wget aus der datei positionsparameter1 und gibt von der ersten '[' bis zum Zeilenende alles aus.

    Kompilier es mit gcc <abgespeichertername> -o <ausgabename>
    Bei mir bringt er eine Warnung, funktioniert aber trotzdem. Du musst den Dateinamen als Positionsparameter angeben.
     
  8. #7 panzaeron, 22.10.2006
    panzaeron

    panzaeron Jungspund

    Dabei seit:
    22.09.2006
    Beiträge:
    19
    Zustimmungen:
    0
    @root1992
    Vielen Dank für deine Unterstützung :)
    Aber so ganz hilfte es mir nicht weiter...
    Der Reihe nach, ich habe ein Skript das lädt je nach Benutzereingabe mit wget verschiedene Dateien herunter. Da es auch Anfänger verwenden, möchte ich die Ausgaben auf die eine Zeile reduzieren, damit der Benutzer sieht wieviel noch zu laden ist und das er auch tatsächlich noch lädt und nicht abgestürtzt ist.

    Wenn ich dich richtig verstanden habe, muss ich die Ausgaben von wget in eine Dateiumlenken und kann dann mit deinem Programm die Ausgabe formatiert ausgeben. Problem ist, ich bekomme die Ausgabe nicht in eine Datei. Die Umlenkung mit wget ftp://xxx.xxx.xxx.xxx/usw. > ausgabe.txt funktioniert nicht. ?(

    Edit:
    Das Kompilieren hat übrigens gut funktioniert :)

    Kannst du mir noch ein wenig auf die Sprünge helfen, wie ich dein Tool einbinden kann?
     
  9. #8 root1992, 22.10.2006
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    Kann man den Wget nicht direkt sagen, er solls in ne Datei schreiben, aber du wirst ein Problem haben, denn es ändert sich ja ständig. D.H. wenn er fertig ist, kannst du erst [ <=> ] ... ausgeben lassen, aber ich denke da ist es schon zuspät.
     
  10. #9 Wolfgang, 22.10.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Du kannst nicht mit Shellmitteln die Ausgabe von wget filtern.
    Wenn du die Ausgabe von wget ändern willst, dann musst du dies im Quelltext von wget tun.
    sed und co erwarten aber ein EOF in der Pipe, der natürlich erst am Ende von wget kommt.
    Ähnliche Problematik hättest du mit top (ohne Option b).
    Gruß Wolfgang
     
  11. #10 root1992, 22.10.2006
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    Und das <=> bewegt sich doch, dass kann man meineswissens nicht mit der Shell machen, nur mit ncurses (meines Wissens, vll gibt es ja eine andere Möglichkeit)
     
  12. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  13. #11 panzaeron, 22.10.2006
    panzaeron

    panzaeron Jungspund

    Dabei seit:
    22.09.2006
    Beiträge:
    19
    Zustimmungen:
    0
    Danke für die Antworten :)

    Ich werde wohl auf ncftpget umsteigen, schmale Ausgabe, alle wichtigen Infos in einer Zeile...

    Nochmal besonderen Dank an root1992 für deine Arbeit.
     
  14. #12 root1992, 23.10.2006
    root1992

    root1992 von IT-Lehrern besessen

    Dabei seit:
    02.01.2006
    Beiträge:
    1.138
    Zustimmungen:
    0
    Ort:
    Märchenwald
    Kein Problem panzaeron wir sind hier eine große Familie :) jeder hilft wo er kann.
     
Thema:

Ausgabe von wget formatieren

Die Seite wird geladen...

Ausgabe von wget formatieren - Ähnliche Themen

  1. php textausgabe mit wget downloaden

    php textausgabe mit wget downloaden: Hallo zusammen, ich verzweifle hier an einem kleinen Problem. Derzeit arbeite ich an einer Art onlinedienst, der schwarze listen für squidguard...
  2. Kurztipp: Unerwünschte grep-Ausgaben vermeiden

    Kurztipp: Unerwünschte grep-Ausgaben vermeiden: Selbst aus altbekannten Programmen kann man oft noch einiges mehr herausholen - man muss sich nur einmal gründlich mit ihnen auseinandersetzen....
  3. Ausgabe von mkdir -p wegwerfen

    Ausgabe von mkdir -p wegwerfen: Hallo, ich stehe gerade auf den schlauch. in meinen BASH Script lege ich mit mkdir -p ein verzeichnis an. Das Script gibt dann immer auf der...
  4. Unix Shell echo/ausgabe solange Bedingung ...

    Unix Shell echo/ausgabe solange Bedingung ...: Hallo liebe Unix User, da ich relativ neu bin, was Linux / Unix angeht stehe ich gerade komplett auf dem Schlauch! Problem: Aus mehreren...
  5. »Einführung in Tcl/Tk« in neuer Ausgabe

    »Einführung in Tcl/Tk« in neuer Ausgabe: Das Buch »Einführung in Tcl/Tk« wendet sich an Anfänger, die die Programmiersprache Tcl/Tk erlernen wollen. Der Titel kann kostenlos für die...