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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 303362
Url: https://administrator.de/forum/string-mit-zeilenumbruch-per-bash-ersetzen-303362.html
Ausgedruckt am: 13.04.2025 um 23:04 Uhr
1 Kommentar

1
sed -i -e 's/^\(key_buffer_size.*\)/#\1/' -e '/#key_buffer_size/a key_buffer_size=512M' /etc/mysql/mysql.conf.d/mysqld.cnf