sed und unbekannter Inhalt

  • Thread starter Thread starter Deleted member 10028
  • Start date Start date
D

Deleted member 10028

Guest
Hall Zusammen,

ich habe mich heute mal mit "sed" beschäftigt - Ein super Programm :D

Zum Testen habe ich mich an einem Auszug meiner my.cnf von MySQL bedient.
Code:
[mysqldump]
quick
quote-names
max_allowed_packet	= 16M

[mysql]
#no-auto-rehash	# faster start of mysql but no tab completition

[isamchk]
key_buffer		= 16M

Code:
sed '/key_buffer/s/16M/32M/' my.cnf
# Daraus werden dann aus den 16M von key_buffer, 32M.
# -i habe ich mir dabei erstmal gespart.
So weit, so gut.
Aber wie kann ich diese Einstellung (16M) von key_buffer ändern, wenn ich nicht weiß, dass es 16M sind?


Freundliche Grüße,
Julian
 
Getestet unter FreeBSD:
Code:
sed -E '/key_buffer/ s/[0-9]+[kKmMgG]/32M/' my.cnf

Aber bedenken, dass es mehrere key_buffer geben kann und alle geändert werden.
 
Danke für deinen Beitrag, Joe User.

Den Parameter -E finde ich in der man nicht, lediglich -e.
Ist -E noch aus älteren Versionen und wird zu -e umgewandelt?

Meinst du, dass vor oder nach "key_buffer" noch etwas anderes stehen kann?
Wie würde ich "key_buffer" dann so bestimmen, dass es als ganzes Wort gesucht wird?


Gruß,
Julian
 
Den Parameter -E finde ich in der man nicht, lediglich -e.
Ist -E noch aus älteren Versionen und wird zu -e umgewandelt?
FreeBSD verwendet kein GNU-sed, daher müsstest Du -r verwenden.

Meinst du, dass vor oder nach "key_buffer" noch etwas anderes stehen kann?
Nein, aber key_buffer kann in mehreren Abschnitten der my.cnf stehen und es würden alle Vorkommen ersetzt.

Wie würde ich "key_buffer" dann so bestimmen, dass es als ganzes Wort gesucht wird?
Code:
/^key_buffer[[:space:]]/
 
Back
Top