Bash : Zeile in Datei aktuallisieren

Merlin732

Erfahrenes Mitglied
Hallo,

kann man mit awk oder ähnlichen eine Zeile in einer Datei aktuallisieren?

Konkret: es gibt eine Datei, ich mache `grep datei $kdnr | awk ...`
Ich finde eine Zeile, lese die zu ändernden Werte aus und ändere sie in den lokalen Variablen.
Aber wie kann ich die Zeile nun wieder in die Datei schreiben und die alte damit überschreiben bzw. die alte Zeile löschen?

MfG
Lars
 
Ich kenne mich mit Bash zwar nicht so richtig aus, aber man könnte es so realisieren:
Die komplette Datei nochmal auslesen und in einen Array oder in einen String speichern und dann während man die Datei ausließt, ändert man die Zeile, die man Aktualisieren möchte.
Nachdem man die Datei ausgelesen hat, löscht man den Inhalt der Datei und schreibt den Array oder den String in die Datei.
 
Hi.

Das könntest du doch gleich mit awk machen.

Bash:
awk "/$kdnr/"' { /* zeile bearbeiten */ } { print $0;}' datei.dat > datei.dat_neu && \
  mv -f datei.dat_neu datei.dat

Gruß
 
Zurück