PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ersetzen einer Stelle mit awk



david_h
05-09-2007, 09:15
Hallo allerseits,
ich würde gerne in einer Datei "datei.dat" z.B. die dritte Spalte in der dritten Zeile durch z.B. "Hallo" ersetzen, und danach die so ersetzte Datei unter dem Namen "datei_neu.dat" speichern .
Ich hab mir sowas zusammengereimt:


awk 'NR==3 {$3="Hallo",print} datei.dat > datei_neu.dat


Allerdings schreibt awk damit nur die dritte Zeile in datei_neu.dat
Wie bekommt man es hin, dass durch print die gesamte Datei ausgegeben wird ?

Oder macht man das irgendwie anders ?
Danke im Voraus,
Gruß, David

jan61
05-09-2007, 19:48
...
awk 'NR==3 {$3="Hallo",print} datei.dat > datei_neu.dat

Allerdings schreibt awk damit nur die dritte Zeile in datei_neu.dat


Das ist aber nicht der Originalcode, ne? Der funktioniert nämlich nicht.

Zum Problem: Du gibst ja auch nur für die 3. Zeile einen print an ;-) Ginge z. B. so:

awk 'NR==3 {$3="Hallo";print; getline;} {print;}' datei.dat > datei_neu.datJan