1 |
Hallo, |
2 |
|
3 |
Am Montag, 3. April 2006 02:37 schrieb Jan C. Potthoff: |
4 |
> ich will in einem Shellskript aus Dateinamen u.a. Klammern und was |
5 |
> zwischen Ihnen steht herausfischen. |
6 |
> |
7 |
> Aus "foo_(weg_damit)_bar.txt" soll "foobar.txt" werden. |
8 |
> |
9 |
> Vor und hinter den Klammern stehende Underscores sollen auch entfernt |
10 |
> werden. |
11 |
> |
12 |
> Mittels sed bin ich soweit schon gekommen (eckige Klammern sollen auch |
13 |
> mit raus): |
14 |
> |
15 |
> nfname=`echo "$fname" | sed 's/\(_*(.*)_*\)\|\(_*\[.*\]_*\)//g'`; |
16 |
|
17 |
Nicht probiert, aber versuch mal: |
18 |
|
19 |
nfname=`echo "$fname" | sed 's/\(_*([^)(]*)_*\)\|\(_*\[[^\]\[]*\]_*\)//g'`; |
20 |
|
21 |
werden natürlich geschachtelte Klammern nicht mehr entfernt.. |
22 |
|
23 |
> Ein Problem ergibt sich nun, wenn mehr als ein "Klammernpaar" gleichen |
24 |
> Typs, also () oder [], im Dateinamen auftaucht. |
25 |
> |
26 |
> "foo_(weg_damit)_behalten_(auch_weg)_bar.txt" wird nun zu "foobar.txt" |
27 |
> anstatt zu "foobehaltenbar.txt". Das RegEx scheint noch zu gierig zu sein. |
28 |
|
29 |
Viele Grüße |
30 |
Eckard |
31 |
|
32 |
-- |
33 |
gentoo-user-de@g.o mailing list |