• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] sed-Befehl

xxxsemoi

Member
Hi,


würde gerne
Titel = {bla blub.}
durch
Titel = {bla blub}
ersetzen (also ohne den Punkt).

Folgendes ist aber nicht die Lösung, weil ich nicht alle ".}" durch } ersetzen möchte, sondern nur in den Zeilen, in denen auch "Titel =" steht:

Code:
sed 's/.}/}/g' OLDFILE > NEWFILE

Pinzipiell sollte das nicht so schwierig sein, für mich ist es das aber.


Danke.
Jonas


LÖSUNG:
Jetzt hatte ich so lange geschaut bevor ich hier gepostet habe und anschließend sofort die Lösung gehabt:
sed '/Title =/{s/.}/}/g;}' OLDFILE > NEWFILE

Für ein besseres Bsp. siehe:
http://strcat.de/blog/archives/484-sed-Nur-in-bestimmten-Zeilen-ersetzen.html
 
Deine Lösung hat bei "{Title = foo{.}bar}" einen false positive.
Code:
perl -pe 's/^{(Title = .*)\.}/{$1}/g'
 
Oben