[linux-l] regex
Lutz Willek
lutz.willek at belug.de
So Jan 8 23:51:22 CET 2012
Hi,
Gegeben sei folgender String:
bla \\section{a} \section{b} foo \\section{c} bar \section{d}
Also wenn ich Dir richtig verstanden habe, aus diesen String willst Du
im Ergebnis folgendes haben: (????)
bla \\section{a} {b} foo \\section{c} bar {d}
Dann liegt das erste Problem schon mal bei echo.
Du machst folgendes:
echo "bla \\section{a} \section{b} foo \\section{c} bar \section{d}"
bla \section{a} \section{b} foo \section{c} bar \section{d}
Du meinst aber:
echo 'bla \\section{a} \section{b} foo \\section{c} bar \section{d}'
bla \\section{a} \section{b} foo \\section{c} bar \section{d}
hier maskiert sich das \\ schon zum \...
Das nächste (eigentlich gleiche Problem) ist nochmal der \, diesmal aber
im sed: Dieser maskiert ja Sonderbedeutungen von Zeichen. Möchtest Du
auf den \ filtern musst Du diesen mit \ maskieren, also kommt ein \\
raus. Ja ist furchtbar, man gewöhnt sich aber dran.
Der Rest ist dann schon korrekt von Dir gedacht. Nicht regex vermiest es
Dir, sondern der \...
Eine Lösung wäre dann:
echo 'bla \\section{a} \section{b} foo \\section{c} bar \section{d}' \
| sed 's/ \\section/ /g'
bla \\section{a} {b} foo \\section{c} bar {d}
Wolltest Du das so haben? Wenn nicht nochmal den String im Original und
das gewünschte Ergebnis.
Übrigens, ein "\\section{bla}" enthält auch ein "\section", mit sed und
Deinen Suchkriterien würdest Du ein "\{bla}" erhalten. Wenn Du das
Ergebnis wolltest müsstest Du noch einmal anders vorgehen.
lg Lutz
Am 08.01.2012 20:39, schrieb Olaf Radicke:
>
> Ich glaube regex wird sich mir nie verschließen. Ich verstehe z.B. nicht
> das Ergebnis:
>
> or at gkiste:~/var$ echo "bla \section{bla}" | sed 's/\\{1}section//g'
> bla \section{bla}
> or at gkiste:~/var$ echo "bla \\section{bla}" | sed 's/\\{1}section//g'
> bla \section{bla}
>
> Ich dachte ich würde mit dem regex sed sagen, ich will alle "\section"
> ausschneiden aber nicht "\\section", in dem ich mit {1} die exakte Anzahl
> vom "\" angebe.
>
> Ich wäre für Nachhilfeuntersicht dankbar.
>
> Gruß& frohes Neues,
>
> Olaf
> _______________________________________________
> linux-l mailing list
> linux-l at mlists.in-berlin.de
> Die Mailingliste der BeLUG (Berliner Linux User Group)
>
> Wenn du diese Mailingliste abbestellen willst, gehe bitte auf
> https://mlists.in-berlin.de/mailman/listinfo/linux-l-mlists.in-berlin.de
> und trage dich dort bitte aus
Mehr Informationen über die Mailingliste linux-l