sed Pfad aus String extrahieren

Diskutiere sed Pfad aus String extrahieren im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; [gelöst] sed Pfad aus String extrahieren Hallo Forum, ich verzweifel gerade an einer an sich simplen Aufgabe. Ich möchte aus einem String...

  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. Gast1

    Gast1 Guest

    Code:
    echo /foo/baa/baz.rar |sed 's|/foo/baa/baz.rar|/foo/baa/|g'
    /foo/baa/
    So in etwa?
     
  3. #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'
     
  4. #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*)
     
  5. 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 :)
     
  6. #6 HeadCrash, 19.10.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    483
    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
     
  7. 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
     
  8. #8 HeadCrash, 19.10.2009
    Zuletzt bearbeitet: 19.10.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    483
    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
     
  9. #9 bytepool, 19.10.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
  10. 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
Besucher kamen mit folgenden Suchen
  1. bash dateiname extrahieren

    ,
  2. bash dateinamen aus komplettem pfad extrahieren

    ,
  3. linux teilstring extrahieren

    ,
  4. sed teilstring 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 /...