Chciałbym zamienić wszystkie {} na pewną linię na [], ale niestety mogę tylko dopasować ostatnie wystąpienie wyrażeń regularnych.sed tylko zastępując ostatnie wystąpienie meczu - trzeba dopasować wszystkie
Mam plik konfiguracyjny, który ma strukturę następująco:
entry {
id 123456789
desc This is a description of {foo} and was added by {bar}
trigger 987654321
}
Mam następujący sed, które jest w stanie zastąpić ostatni mecz „bar”, ale nie „foo”:
sed s'/\(desc.*\){\(.*\)}/\1\[\2\]/g' < filename
Zakotwiczę to wyszukiwanie do wiersza zawierającego "desc", ponieważ nie chciałbym, aby zastąpiło ono nawiasy klamrowe każdego bloku "wpisu".
Dla mojego życia nie jestem w stanie wymyślić sposobu zastąpienia wszystkich wystąpień.
Każda pomoc jest doceniana - uczy się przez cały dzień i nie jest w stanie przeczytać więcej tutoriali z obawy przed pęknięciem rogówki.
Dzięki!
Dziękuję F.J, że działało świetnie! (PS - może oznaczać jako odpowiedział w 3 minuty najwyraźniej :-) – halfpasthope