On Sam, 28 Jun 2003 at 23:33 (+0200), David Haller wrote:
On Sat, 28 Jun 2003, Jan Trippler schrieb:
und außerdem funktioniert die dirname-Variante nicht, wenn kein Pfad existiert: jan@p4mobil:~/tmp> file=bash jan@p4mobil:~/tmp> echo "$file" | sed 's#/\[^/]*$##' ^ 's/\\//' ;)
Hach, bist Du heute wieder pingelig ;-) Funktioniert trotzdem nicht - ätsch!
Mir fällt im Moment auch keine sed-only-Variante ein, die das abfangen könnte. Dir? ;-)
Ja. *GRINS*
Na, das hat ja gedauert *fg*
SHELLPROMPT$ for f in /dir/file dir/file /file file; do echo "$f" | sed '/^\/[^/]*$/{s#.*#/#;b;};/\//{s#/[^/]*$##;b;};/^[^/]*$/{s#.*#.#;}'; done /dir dir /
^ hier hast Du 'nen Punkt unterschlagen *grummel* *tststs* - die jungen Leute heutzutage: immer gleich diesen ekligen goto ins Rennen schicken ;-) Aber Du hast mich auf Ideen gebracht. Versuch mal den hier: <schnipp> flist=" /dir/file dir/file ./dir/file ./file /file file /dir/ dir/ ./dir/ " for f in $flist; do echo "$f" echo -ne "\tDavid: " echo "$f" | sed \ '/^\/[^/]*$/{s#.*#/#;b;};/\//{s#/[^/]*$##;b;};/^[^/]*$/{s#.*#.#;}' echo -ne "\tJan : " echo "$f" | sed \ '/^[^/]*$/{s#^#./#};/^\/[^/]*$/{s#^#/#};s#/[^/]*$##' done <schnapp> Gute Nacht Jan