sh Skript Ordner aus Pfad extrahieren

dark_angel

Well-Known Member
Hi,

ich stehe gerade etwas aufm Schlauch und hoffe, dass ihr mir weiterhelfen könnt.
Im Moment hocke ich an einem sh Skript, welches eine Liste mit Ordnerpfaden bekommt. Aus dieser Liste benötige ich den letzten Ordner eines jeden Ordnerpfades.
Die Liste einlesen und mit der for-Schleife durchlaufen ist ja kein Problem, nur leider hab ich gerade ne Denksperre, wie ich den letzten Ordner aus dem Pfad extrahieren kann. Wäre super, wenn mir hier jemand auf die Sprünge helfen kann. Google hat mir net geholfen. :(

Thx!
 
Wie waere es mit basename(1)? Das haut alles weg, bis auf das letzte Verzeichnis/Datei in einem Pfad.
 
Die Liste einlesen und mit der for-Schleife durchlaufen ist ja kein Problem, nur leider hab ich gerade ne Denksperre, wie ich den letzten Ordner aus dem Pfad extrahieren kann.
Also, Du hast in einer Variable PF den momentanen Pfad stehen, /usr/local/lib z. B. Und nun willst Du einfach nur "lib" haben, die unterste Verzeichnisebene? Verstehe ich das richtig?
Dann sollte das hier helfen:
Code:
echo ${PF##*/}
Falls $PF aber mit einem / endet, erhältst Du einen leeren String zurück. Diesen / solltest Du also ggf. vorher (!) entfernen:
Code:
PF=${PF%/}
Diese Syntax funktioniert so in ksh und bash, in tcsh wahrscheinlich nicht.

Das Prozentzeichen heißt: entferne vom Stringende, das Doppelkreuz: entferne vom Anfang. Bei % bzw. # wird nur der kleinste passende String entfernt, bei %% bzw. ## der größte. Rechts von diesem Operator können die üblichen Shell-Wildcards mit *, ? usw. stehen.
 
Hey thx für die Tipps. Werde ich morgen direkt ausprobieren!

@Tronar: Jopp genau das will ich. Thx für die ausführliche Erklärung!
 
Zurück
Oben