ubuntuusers.de

[Bash] Position von Zeichen in String speichern.

Status: Ungelöst | Ubuntu-Version: Xubuntu 14.04 (Trusty Tahr)
Antworten |

Capatcha

Anmeldungsdatum:
12. Dezember 2010

Beiträge: 151

Ich habe hier eine Webseite, von der ich am liebsten täglich einige PDFs runterladen würde (ändern sich täglich). Da ich keine Lust habe mich da jetzt jeden Tag hinzusetzten und es manuell zu machen, dachte ich mir, dass ich mir ein kleines Skript bastle, dass das für mich übernimmt.

Die Seite ist an sich sehr simpel aufgebaut. Besteht praktisch nur aus Tabellen und Links. Ich dachte mir, dass ich das mal mit Bash versuche (kann keine Scriptsprache gut), da es schon installiert ist.

Die PDFs sind in Kategorien eingeteilt, welche durch eine jeweils passende Überschrift abgetrennt sind. Leider sind es nicht immer gleich viele PDFs pro Kategorie, sodass ich jetzt nicht weiß, wie ich überprüfen kann, ob als nächstes wieder eine Link zu einem PDF oder gleich die nächste Kategorie kommt.

Ich habe schon nach Codebeispielen gesucht, die ich für diesen Zweck missbrauchen könnte, doch leider hapert es da an einigen stellen. Hoffentlich kann mir da einer weiterhelfen oder sogar einen weiteren/besseren Ansatz zeigen.

1
2
a="The cat sat on the cat mat"
echo $a | grep -b -o cat

Als Ergebnis bekomme ich dann folgendes:

1
2
4:cat
19:cat

Damit könnte ich an sich schon arbeiten, wenn ich nur die 4 alleine in einer Variable abspeichern könnte. Somit könnte ich dann überprüfen, ob der Index für einen Link oder eine Überschrift kleiner ist → kommt als nächstes.

Da komme ich jetzt nicht mehr weiter und wäre auf die Hilfe von einem von euch angewiesen:)

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Solche Webseite ist ja nicht "Plain Text", sondern HTML oder sogar XHTML. Dementsprechend solltest Du zum auslesen auch sinnigerweise entweder die XML- HTML- Utils (→ hxwls ?) oder xmlstarlet benutzen, je nachdem.

Wenn Du einen Link oder ein einigermaßen realistisches Beispiel für Deine Webseite gibst, dann können wir Dir sicherlich auch konkreter weiter helfen.

LG,

track

Antworten |