sed Pfad aus String extrahieren

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von keks, 19.10.2009.

  1. #1 keks, 19.10.2009
    Zuletzt bearbeitet: 19.10.2009
    keks

    keks nicht 1337 genug

    Dabei seit:
    17.01.2007
    Beiträge:
    401
    Zustimmungen:
    0
    Ort:
    Hessen
    [gelöst] sed Pfad aus String extrahieren

    Hallo Forum,

    ich verzweifel gerade an einer an sich simplen Aufgabe.
    Ich möchte aus einem String dieser art "/foo/baa/baz.rar" mit sed folgende Ausgabe erreichen: "/foo/baa/". Anscheinend habe ich sed noch nicht ganz verstanden. Vielleicht hat ja jemand die Lösung und teilt sie mit mir :hilfe2:

    Gruß Keks
     
  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. Gast1

    Gast1 Guest

    Code:
    echo /foo/baa/baz.rar |sed 's|/foo/baa/baz.rar|/foo/baa/|g'
    /foo/baa/
    So in etwa?
     
  4. #3 keks, 19.10.2009
    Zuletzt bearbeitet: 19.10.2009
    keks

    keks nicht 1337 genug

    Dabei seit:
    17.01.2007
    Beiträge:
    401
    Zustimmungen:
    0
    Ort:
    Hessen
    Hallo Rain_Maker,

    hehe, das erfüllt zwar die von mir gestellten Anforderungen, doch leider muss ich sie nochetwas präzisieren damit mir das was nutzt: der Pfad sowie der Dateiname (bis auf das .rar) ändert sich, ist also nicht statisch.

    Edit:
    folgendes regex würde funktionieren. Ist aber in meinen Augen sehr unelegant:
    Code:
    echo "/home/david/foo.rar" |sed -e 's/[a-Z,.,\,]*rar//g'
    Edit 2. :
    das ist schon eleganter:
    Code:
     echo "/home/david/foo.rar" |sed -e 's/[^\/]*rar//g'
     
  5. #4 Gast1, 19.10.2009
    Zuletzt von einem Moderator bearbeitet: 19.10.2009
    Gast1

    Gast1 Guest

    Ich hatte das jetzt so verstanden, daß die "üblichen" Trenner ("/") auch im String vorkommen und Du gerade bezüglich geeigneter "Surrogate" auf dem Schlauch stehst.

    (Wäre allerdings auch irgendwie zu einfach gewesen, daß ich Script-DAU da mal ne passende Antwort gehabt hätte. *g*)
     
  6. keks

    keks nicht 1337 genug

    Dabei seit:
    17.01.2007
    Beiträge:
    401
    Zustimmungen:
    0
    Ort:
    Hessen
    mein stümperhaftes sed Script löscht/matcht auf den Dateiname.
    Wie könnte ich denn stattdessen ausgeben? Sprich wie würde ich denn auf den PFAD matchen? Also auf sowas "/foo/baa/".

    @Rain_Maker :)
     
  7. #6 HeadCrash, 19.10.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Moin,

    wieso immer das Rad neuerfinden?

    Code:
    :~$ gaga="/foo/baa/baz.rar"
    :~$ dirname $gaga
    /foo/baa
    :~$ basename $gaga
    baz.rar
    
    mfg
    HeadCrash
     
  8. keks

    keks nicht 1337 genug

    Dabei seit:
    17.01.2007
    Beiträge:
    401
    Zustimmungen:
    0
    Ort:
    Hessen
    Danke HeadCrash für diesen tollen Tipp, das wird sofort "notiert" :)!

    Das Optimalste währe wenn noch jemand das sed Äquivalent wüsste.

    Gruß

    Keks
     
  9. #8 HeadCrash, 19.10.2009
    Zuletzt bearbeitet: 19.10.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Dann halt noch in sed :D

    Code:
    :~$ gaga="/foo/baa/baz.rar"
    :~$ echo $gaga | sed 's/^\(\/.*\)\/\(.*\.rar\)$/\1/'
    /foo/baa
    :~$ echo $gaga | sed 's/^\(\/.*\)\/\(.*\.rar\)$/\2/'
    baz.rar
    
    <edit>regex so umgebaut das der abschließende slash rausfällt</edit>

    mfg
    HeadCrash
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 bytepool, 19.10.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
  12. keks

    keks nicht 1337 genug

    Dabei seit:
    17.01.2007
    Beiträge:
    401
    Zustimmungen:
    0
    Ort:
    Hessen
    Danke an alle :bounce: !!
     
Thema:

sed Pfad aus String extrahieren

Die Seite wird geladen...

sed Pfad aus String extrahieren - Ähnliche Themen

  1. Löschen mit Wildcard wenn Space im Pfad ist?

    Löschen mit Wildcard wenn Space im Pfad ist?: Hallo zusammen weder rm "/var/lib/vmware/Virtual Machines/Virtual Machine/"*.lck -R noch rm "/var/lib/vmware/Virtual...
  2. Suche Dateinpfad in .txt

    Suche Dateinpfad in .txt: Hallo, mein Problem ist folgendes: Ich habe Textdatein in denen zwei für mich relevante Dinge stehen. Zum einen die Zeile: Enabled:...
  3. Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln

    Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln: Ich muß häufiger in 2 bestimmte Verzeichnisse auf 3. oder 4. Ebene wechseln. Um nicht permanent cd /ordnerA/ordnerB/ordnerC... usw eingeben zu...
  4. sed mit basename verknüpfen - oder anders Dateipfade in Dateien mit regex ersetzen?

    sed mit basename verknüpfen - oder anders Dateipfade in Dateien mit regex ersetzen?: Hallo, mein Ziel ist es ein Script zu schreiben, das eine CSS-Datei entgegen nimmt und in dieser Datei Pfade ersetzt. Ich möchte bspw....
  5. HowTo? : CentOS Kickstart / angepasste Installation mit mehren Installationspfaden

    HowTo? : CentOS Kickstart / angepasste Installation mit mehren Installationspfaden: Hallo, leider habe ich zu meinem Anliegen keine Ressourcen gefunden, auch nicht im Installationshandbuch von RedHat.. Ich möchte CentOS /...