Am Sonntag 27 September 2009 13:40:20 schrieb Christian Brabandt: Hallo Christian,
On Sa, 26 Sep 2009, Al Bogner wrote:
Am Samstag 26 September 2009 12:20:45 schrieb David Haller:
$ v="HURZ"; $ echo "/foo/bar/Foo.Bar.Baz.Quux" | \ sed -n "s/\.\([^.]+\)\$/_${v}.\1/p"; /foo/bar/Foo.Bar.Baz_HURZ.Quux
Da kommt bei mir nichts raus:
v="HURZ"; echo "/foo/bar/Foo.Bar.Baz.Quux" | \ sed -n "s/\.\([^.]+\)\$/_${v}.\1/p"
Da fehlt auch ein \ vor dem +: chrisbra@256bit:~$ echo "/foo/bar/Foo.Bar.Baz.Quux" | sed -n "s/\.\([^.]+\)\$/_${v}.\1/p" chrisbra@256bit:~$ chrisbra@256bit:~$ echo "/foo/bar/Foo.Bar.Baz.Quux" | sed -n "s/\.\([^.]\+\)\$/_${v}.\1/p" /foo/bar/Foo.Bar.Baz_HURZ.Quux chrisbra@256bit:~$
Die Jan-Variante klappt. Da kämpfe ich aber noch die Erweiterung zu bestimmen, sodass - siehe unten_ NEWFILE rauskommt.
for INP in `find /bak/ -type f | sort`; do MD5=`md5sum "$INP" | cut -f 1 -d" "` NEWFILE=`echo "$INP" | sed -n "s/\.\([^.]+\)\$/_${MD5}.\1/p"`
auch hier muß das + maskiert werden.
Ah danke, das mit dem + wurde hier ja kürzlich diskutiert. Eine Ausnahme habe ich noch bei meinem Problem (md5sum in Dateinamen integrieren um Download überprüfen zu können). Die Datei hat keine Erweiterung, d.h. keinen Punkt. In diesem Fall soll die Prüfsumme ($MD5) einfach ans Ende angehängt werden. Kann man das direkt bei sed integrieren oder brauche ich dafür ein "if". BTW Delimiter ist mittlerweile + Beispiel einer Sicherungsdatei: srvwww_suse_v5_0939@26_Sep_09_23h_Sat@1068MB+856390492db6ffc1718e8b21a2970353.tgz Wie bestimme ich am einfachsten nur die Erweiterung? zB /dir1/dir2/irgend.was.txt (beliebig viele Dir, beliebig viele Punkte, beliebige Erweiterung) Danke Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org