PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zeile in einer datei ersezten



meinereinerseiner
20-02-2005, 21:15
hi,

ich mal wieder :)

wie ersetze ich denn in einer datei namens data eine zeile die wie folgt aussieht:

=gardine.wg.de:192.168.100.15:3600
gegen folgende:
=gardine.wg.de:192.168.100.19:3600

wobei der wert 192.168.100.15 nicht fest steht, ich also ihn im vorfeld
nicht kenne. gut ich könnte natürlich die zeile erst parsen und mir
die aktuelle ip holen und diese ersetzen.....hmmmm


hat jemand eine idee?



thx
der tom

meinereinerseiner
20-02-2005, 21:46
also mit:


sed "s/$(grep gardine data | awk -F: '{print $2}')/192.168.100.19/g" -i data

gehts - wenn auch nicht elegant, aber es geht.
aber vielleicht hat ja jemand eine bessere idee.

der tom

Joghurt
21-02-2005, 00:52
Warum so umständlich?
sed -e 's/:.*:/:192.168.100.19:/' -i Datei
Falls du ein altes sed hast
sed -e '...' Datei > Datei.new && mv Datei.new Datei

meinereinerseiner
21-02-2005, 09:53
Warum so umständlich?
sed -e 's/:.*:/:192.168.100.19:/' -i Datei
Falls du ein altes sed hast
sed -e '...' Datei > Datei.new && mv Datei.new Datei

upps, ja, hab ich doch vergessen zu erwähnen das es bei der datei um ein
zonenfile von tinydns geht, da geht deine variante so nicht, da ich dann
ca. 40 einträge mit der gleichen ip habe. :( :rolleyes:


der tom

johny_walker
24-02-2005, 17:32
geht auch so:

perl -pi.bak -e 's/OLDSTRING/NEWSTRING/g' Datei


Gruss :)

Johny_Walker

lagalopex
24-02-2005, 19:17
sed 's/\(^=gardine.wg.de:\).*\(:.*$\)/\1192.168.100.19\2/g' -i data