PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Per Skript eine Zeile in einer Datei ersetzen



muellners
09.02.2005, 14:59
versuche gerade nach ausführung eines Skript´s , die erste Zeile einer Datei durch einen neuen Eintrag zu ersetzen.


Inhalt der Datei:

Aktuell seit 09.02.2005
Zeile zwei
Zeile drei
Zeile vier


Wie gesagt, nur Zeile eins soll durch neuen Eintrag ersetzt werden.

tr0nix
09.02.2005, 15:30
Wieso Perl?

Gibt mehrere Moeglichkeiten auch ohne Perl.
Dateiname: test

tail +2 test # Alles nach der ersten Zeile

Oder mit sed:

1a\
neuer text
1d
sed -f sedscript test

muellners
09.02.2005, 16:17
Bitte nicht falsch verstehen, nicht "Perl"

Mittels Skript nur die erste Zeile einer Datei ersetzen, der Rest des Inhaltes muss erhalten bleiben

so wie

echo "Neue erste Zeile" >> Zieldatei

nur nicht anhängen sondern an den Anfang stellen.

tr0nix
09.02.2005, 16:25
Du kommst fast nicht drum um eine temporäre Datei zu haben. Es sei denn, dein sed supportet inline editing! Wenn du weisst, wie die erste Zeile heisst, kannst du diese dann direkt mit sed ersetzen.

Ansonsten:

echo "neue erste zeile" >> neue_datei
tail +2 alte datei >> neue_datei
mv neue_datei alte_datei