Anzeige:
Ergebnis 1 bis 13 von 13

Thema: Mit SED eine Url neu formatieren?

  1. #1
    Registrierter Benutzer
    Registriert seit
    25.10.2002
    Beiträge
    74

    Mit SED eine Url neu formatieren?

    Hallo zusammen,

    ich möchte aus "http://ich.bin.eine/url/oder.so;" nur die Domain, also "ich.bin.eine;" übrig haben. Die subdomain muß nicht, kann aber vorhanden sein...

    Ich weiß zwar wie ich mit sed etwas ersetze, jedoch nicht, wie ich Teile des Suchstrings ersetze..

    Folgendes steht bisher:
    Code:
    sed -e "s/http://([a-zA-Z0-9]*\.)?[a-zA-Z0-9]*.[a-zA-Z0-9]*\/.*;/xxxxxxx/"
    Was muß bei xxxxxxx hin? Übrig bleiben soll ja nur noch der "([a-zA-Z0-9]*\.)?[a-zA-Z0-9]*.[a-zA-Z0-9]*"-Part. Ich verstehe diese Backreferences einfach noch nicht so wirklich...

    Grüße, Florian
    Geändert von qeldroma (14-12-2006 um 10:12 Uhr)

  2. #2
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von qeldroma Beitrag anzeigen
    Hallo zusammen,

    ich möchte aus "http://ich.bin.eine/url/oder.so;" nur die Domain, also "ich.bin.eine;" übrig haben. Die subdomain muß nicht, kann aber vorhanden sein...

    Ich weiß zwar wie ich mit sed etwas ersetze, jedoch nicht, wie ich Teile des Suchstrings ersetze..

    Folgendes steht bisher:
    Code:
    sed -e "s/http://([a-zA-Z0-9]*\.)?[a-zA-Z0-9]*.[a-zA-Z0-9]*\/.*;/xxxxxxx/"
    Was muß bei xxxxxxx hin? Übrig bleiben soll ja nur noch der "([a-zA-Z0-9]*\.)?[a-zA-Z0-9]*.[a-zA-Z0-9]*"-Part. Ich verstehe diese Backreferences einfach noch nicht so wirklich...

    Grüße, Florian
    Man kann es auch kompliziert machen. Da gibt es richtige Wettbewerbe.

    awk -F'/' '{print $2$3}'
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  3. #3
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Also bei mir funktioniert das hier:

    Code:
    echo http://ich.bin.eine/url/oder.so | sed -e "s/.*\/\/\([^\/]*\).*/\1/g"
    Wieso einfach, wenns kompliziert geht, wobei, dass ist ja nun wirklich nicht kompliziert.
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  4. #4
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von Waxolunist Beitrag anzeigen
    Wieso einfach, wenns kompliziert geht, wobei, dass ist ja nun wirklich nicht kompliziert.
    Für mich ja auch nicht, bloß ich wende REGEX nur an, wenn es unbedingt
    notwendig ist.
    Aber hast schon recht, Er wollte ja unbedingt einen SED Befehl haben,
    und da geht es nun mal nicht ohne REGEX.
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  5. #5
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Zitat Zitat von Waxolunist Beitrag anzeigen
    Code:
    echo http://ich.bin.eine/url/oder.so | sed -e "s/.*\/\/\([^\/]*\).*/\1/g"
    Etwas schöner:
    Code:
    echo http://ich.bin.eine/url/oder.so | sed -e "s#.*//\([^/]*\).*#\1#g"
    Man vergisst gerne, dass man das Trennzeichen nach "s" selbst wählen kann, und das "/" nur Konvention ist.

  6. #6
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Zitat Zitat von Joghurt Beitrag anzeigen
    Etwas schöner:
    Code:
    echo http://ich.bin.eine/url/oder.so | sed -e "s#.*//\([^/]*\).*#\1#g"
    Man vergisst gerne, dass man das Trennzeichen nach "s" selbst wählen kann, und das "/" nur Konvention ist.
    Vergessen? Gar nicht gewußt!

    Vielen Dank @ Joghurt. Wieder was dazu gelernt.
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  7. #7
    Registrierter Benutzer
    Registriert seit
    25.10.2002
    Beiträge
    74
    Verstehe!
    Alles was ich also in runde Klammern stecke, kann ich dann mit einer Nummerr referenzieren?
    Ok!

    Wie könnte man denn lösen, daß nur der referenzierte Part in einer weiteren Art und Weise verarbeitet wird?

    Z.B. aus "bin" dann "werde" machen?

    Dann müßte man ja irgendwie "\1" erneut verarbeiten?

    Grüße, Florian

  8. #8
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Am einfachsten einfach weiterverpipen. Alles in einem Kommando kann dann schon sehr unübersichtlich werden.

    Ich würde es dann in 3 Untergruppen unterteilen und wieder zusammenfügen.

    Ungefähr so:

    Code:
    echo http://ich.bin.eine/url/oder.so | sed -e "s#.*//\([^/]*\).*#\1#g" | sed -e "s#\(.*\)\.\(.*\)\.\(.*\)#\1.werde.\3#g"
    Aber ehrlich gesagt, fällt mir im Moment gerade keine elegantere Lösung ein, welche es aber bestimmt gibt. Hab nur im Moment wenig Zeit.

    lg, Christian
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  9. #9
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von qeldroma Beitrag anzeigen
    Z.B. aus "bin" dann "werde" machen?

    Grüße, Florian
    s#.*//\([^.]*\).\([^.]*\).\([^/]*\).*#\1.werde.\3#g
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  10. #10
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Des is ja fast desselbe wie ich schon geschrieben habe. Nur etwas länger, da du unnötigerweise die Punkte ausnimmst.
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  11. #11
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von Waxolunist Beitrag anzeigen
    Des is ja fast desselbe wie ich schon geschrieben habe. Nur etwas länger, da du unnötigerweise die Punkte ausnimmst.
    Stimmt,
    hätte ich mir die Arbeit ja sparen können.

    Da deine Zeile in Code: Tags eingeschlossen hätte ich horizontal
    scrollen müssen um die gesammte SED Anweisung zu sehen.
    Hab ich nicht gemacht. Na was solls, mal ne gute Übung.

    Aber mich würde mal intessieren, wie man:
    http://www.mrunix.de/forums/showthread.php?t=48122
    mit SED lösen kann?
    Geändert von Romanday (16-12-2006 um 16:46 Uhr)
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  12. #12
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Ich bin am überelgen.

    Man müßte wohl jede newline durch ein space ersetzen, ausser den newline-selects.

    Ich überlege und werde bald wieder kommen.
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

  13. #13
    Registrierter Benutzer Avatar von Waxolunist
    Registriert seit
    19.06.2006
    Ort
    Wien
    Beiträge
    485
    Ich hab meine Lösung in den anderen Thread geschrieben.
    Spezialitäten heute: PLSQL, TSQL, Java (alles mit Webanwendungen), Groovy, Grails, ASP.NET, Javascript, Python, Django
    Straight through, ohne Umwege ans Ziel

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •