On Sam, 28 Jun 2003 at 00:40 (+0200), David Haller wrote: [...]
echo "$file" | sed 's/.*\/\([^/]*\)$/\1/' echo "$file" | sed 's/\/[^/]*$//'
echo "$file" | sed 's#.*/\([^/]*\)$#\1#' echo "$file" | sed 's#/[^/]*$##' ist IMHO übersichtlicher (nicht so viele Backslashes und man sieht besser, wo der Slash tatsächlich als Zeichen gebraucht wird) und außerdem funktioniert die dirname-Variante nicht, wenn kein Pfad existiert: jan@p4mobil:~/tmp> file=bash jan@p4mobil:~/tmp> echo "$file" | sed 's#/\[^/]*$##' bash Mir fällt im Moment auch keine sed-only-Variante ein, die das abfangen könnte. Dir? ;-) [...]
echo "$file" | awk -F'/' '{for(i=1;i
Diese Variante hat das gleiche Problem wie Dein sed oben - sie liefert ein falsches Ergebnis, wenn es keinen / in $file gibt. echo "$file" | awk -F/ '{print substr($0,length($0)-length($NF)-1);}' wäre eine Alternative. [...]
PS: ja, die AWK-Befehle sind unschoen "komprimiert"...
ACK *duck_und_weg* Jan