|
UnitedBlaze
Anmeldungsdatum: 30. Mai 2018
Beiträge: Zähle...
|
Moin moin, ich lade eine HTML-Datei herunter, filtere diese mit sed und suche dann etwas mit grep.
Komischerweise erfolgt dann zusätzlich immer eine solche Asugabe:
| % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:--
|
Woran liegt das und wie stelle ich es ab?? MfG UnitedBlaze
|
|
cosinus
Anmeldungsdatum: 11. Mai 2010
Beiträge: 1374
|
Ich galube dazu müsstest du mal deinen gesamten Befehl posten, den du absetzt und der diese Ausgabe erzeugt...
|
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11278
|
Abgesehen davon, dass man HTML nicht mit zeilenbasiert arbeitenden Tools wie grep oder sed parsen sollte (sondern mit einem richtigen HTML-Parser) solltest du mal einen Blick in die Manpage zu curl werfen: -s, --silent
Silent or quiet mode. Don't show progress meter or error
messages. Makes Curl mute.
|
|
UnitedBlaze
(Themenstarter)
Anmeldungsdatum: 30. Mai 2018
Beiträge: Zähle...
|
cosinus schrieb: Ich galube dazu müsstest du mal deinen gesamten Befehl posten, den du absetzt und der diese Ausgabe erzeugt...
Mein Code sieht grob so aus:
| curl file:///home/.../Test.html | sed 's/<[^>]\+>//g' | grep "Hallo"
|
seahawk1986 schrieb: Abgesehen davon, dass man HTML nicht mit zeilenbasiert arbeitenden Tools wie grep oder sed parsen sollte (sondern mit einem richtigen HTML-Parser) solltest du mal einen Blick
Welches Tool empfehlst du mir denn?
|
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11278
|
UnitedBlaze schrieb: Welches Tool empfehlst du mir denn?
Das hängt davon ab, was man damit machen will - mit BeautifulSoup kann man recht bequem arbeiten, ohne sich mit XPath oder XSLT herumschlagen zu müssen (wenn man damit kein Problem hat, kann man lxml nehmen).
|
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4735
|
@UnitedBlaze: Mal ein Beispiel warum man sed/grep da nicht vertrauen kann:
$ echo '<foo bar=">" baz="Hallo">text</foo>' | sed 's/<[^>]\+>//g' | grep 'Hallo'
" baz="Hallo">text
Dann gäbe es noch Kommentare und bei XHTML CDATA-Elemente bei denen leicht etwas enthalten sein kann was das sed nicht ausfiltert. Man könnte die XML/HTML-Tools vom w3c verwenden:
| curl file:///home/.../Test.html | hxclean | hxselect -c -s '\n' . | grep 'Hallo'
|
|
|
cosinus
Anmeldungsdatum: 11. Mai 2010
Beiträge: 1374
|
UnitedBlaze schrieb: cosinus schrieb: Ich galube dazu müsstest du mal deinen gesamten Befehl posten, den du absetzt und der diese Ausgabe erzeugt...
Mein Code sieht grob so aus:
| curl file:///home/.../Test.html | sed 's/<[^>]\+>//g' | grep "Hallo"
|
Wieso gehst du mit curl auf eine lokale Datei los? Wieso geht nicht sowas? | sed 's/foo/bar' /home/blubb/datei.irgendwas | grep -i suchmuster
|
|
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4735
|
@cosinus: Ich vermute mal die lokale Datei ist zum testen, damit es schneller geht und nicht jedes mal der Server belastet wird.
|
|
UnitedBlaze
(Themenstarter)
Anmeldungsdatum: 30. Mai 2018
Beiträge: 28
|
cosinus schrieb: Wieso gehst du mit curl auf eine lokale Datei los? Wieso geht nicht sowas?
Marc_BlackJack_Rintsch schrieb: @cosinus: Ich vermute mal die lokale Datei ist zum testen, damit es schneller geht und nicht jedes mal der Server belastet wird.
Ja genau ist jetzt nur vorläufig!
Wie kann ich mit curl eine Datei direkt in einem Unterordner von dem Ordner wo ich mein Skript aufrufe öffnen?
habe probiert:
| curl file:///./Unterordner/test.html
|
hat aber nicht so ganz funktioniert.. :S
|
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4735
|
URLs mit Schema können nicht relativ sein.
|
|
cosinus
Anmeldungsdatum: 11. Mai 2010
Beiträge: 1374
|
UnitedBlaze schrieb: Wie kann ich mit curl eine Datei direkt in einem Unterordner von dem Ordner wo ich mein Skript aufrufe öffnen?
Äh häh? Den Unterordner vorher vllt mal angeben? 😀 Wie ich schon sagte brauchst du aber kein curl für lokale Dateien.
|
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4735
|
@cosinus: Der Unterordner war angegeben. Das Problem ist, das URL mit Schema nicht relativ sein können, es reicht also nicht den Unterordner anzugeben, man muss auch alles von der Wurzel aus angeben. Es gibt Programme die auch mit relativen Pfaden in URLs mit Schema umgehen können, das ist aber nicht mit der Spezifikation konform.
|
|
cosinus
Anmeldungsdatum: 11. Mai 2010
Beiträge: 1374
|
Schön, also nochmal, wieso muss man unbedingt mit curl auf lokale Dateien losgehen? Wenn dann muss man den kompletten Pfad angeben.
Ohne curl also so wie man es sonst macht mit lokalen Dateien kann man auch rel. Pfade verwenden.
|
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4735
|
@cosinus: Nochmal: Weil da eigentlich keine lokale Datei steht, sondern nur jetzt zu Testzwecken. Wenn Dir das zu sehr zu schaffen macht, dann denk Dir einfach…
| curl "$url" | hxclean | hxselect -c -s '\n' . | grep 'Hallo'
|
…und ignoriere das $url auch eine file:-URL sein könnte. Und bitte jetzt nicht fragen warum da unbedingt nach 'Hallo' gegrept werden muss. Ist ziemlich sicher auch nur als Beispiel zum testen. 😉
|
|
cosinus
Anmeldungsdatum: 11. Mai 2010
Beiträge: 1374
|
Ich hab deine Vermutung vorher gelesen, trotzdem muss man bei dieser Trockenübung nicht mit curl auf lokale Dateien losgehen. Man kann auch die entfernte Datei erstmal runterladen nach /tmp oder so und dann alles mit ihr anstellen was man will. Lokal und ohne curl funktionieren dann auch relative Pfadangaben wieder.
|