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
Please also mark the comments that contributed to the solution of the article
Content-Key: 303362
Url: https://administrator.de/contentid/303362
Printed on: April 18, 2024 at 09:04 o'clock
1 Comment
sed -i -e 's/^\(key_buffer_size.*\)/#\1/' -e '/#key_buffer_size/a key_buffer_size=512M' /etc/mysql/mysql.conf.d/mysqld.cnf