stefankittel
Goto Top

String mit Zeilenumbruch per Bash ersetzen

Hallo,

ich möchte gerne in einer Datei einen String durch einen anderen ersetzen.
Das dumme daran ist, dass ein Zeilenumbruch enthalten ist.
Damit kann sed und perl nicht so ohne weiteres umgehen.

Vorher
Text Text Text\n
key_buffer_size=16M\n
Text Text Text\n

Nachher
Text Text Text\n
#key_buffer_size=16M\n
key_buffer_size=512M\n
Text Text Text\n

Das habe ich probiert, aber sed arbeitet standardmäßig zeilenweise. Genau wie perl.
sed -i -e 's/\nkey_buffer_size/\nkey_buffer_size=17M\n#key_buffer_size/g' /etc/mysql/mysql.conf.d/mysqld.cnf

Kann mir bitte jemand kurz helfen?
Danke

System ist Ubuntu 16 LTS (Testystem)

Danke

Content-Key: 303362

Url: https://administrator.de/contentid/303362

Printed on: April 18, 2024 at 09:04 o'clock

Mitglied: 114757
Solution 114757 May 01, 2016 updated at 08:59:50 (UTC)
Goto Top
sed -i -e 's/^\(key_buffer_size.*\)/#\1/' -e '/#key_buffer_size/a key_buffer_size=512M' /etc/mysql/mysql.conf.d/mysqld.cnf  
Gruß jodel32