1 |
Hallo zusammen, |
2 |
|
3 |
ich will in einem Shellskript aus Dateinamen u.a. Klammern und was |
4 |
zwischen Ihnen steht herausfischen. |
5 |
|
6 |
Aus "foo_(weg_damit)_bar.txt" soll "foobar.txt" werden. |
7 |
|
8 |
Vor und hinter den Klammern stehende Underscores sollen auch entfernt |
9 |
werden. |
10 |
|
11 |
Mittels sed bin ich soweit schon gekommen (eckige Klammern sollen auch |
12 |
mit raus): |
13 |
|
14 |
nfname=`echo "$fname" | sed 's/\(_*(.*)_*\)\|\(_*\[.*\]_*\)//g'`; |
15 |
|
16 |
Ein Problem ergibt sich nun, wenn mehr als ein "Klammernpaar" gleichen |
17 |
Typs, also () oder [], im Dateinamen auftaucht. |
18 |
|
19 |
"foo_(weg_damit)_behalten_(auch_weg)_bar.txt" wird nun zu "foobar.txt" |
20 |
anstatt zu "foobehaltenbar.txt". Das RegEx scheint noch zu gierig zu sein. |
21 |
|
22 |
Ich hab mir schon das Hirn zermartert, wie ich es "ungieriger" machen |
23 |
koennte, bin aber nicht weiter gekommen. |
24 |
|
25 |
Jemand von Euch eine Idee? |
26 |
|
27 |
Gruss |
28 |
|
29 |
Jan C. Potthoff |
30 |
|
31 |
PS: |
32 |
|
33 |
janosch@magrathea ~ $ sed --version |
34 |
GNU sed version 4.1.4 |
35 |
|
36 |
Send instant messages to your online friends http://au.messenger.yahoo.com |
37 |
|
38 |
-- |
39 |
gentoo-user-de@g.o mailing list |