Hallo Leute,
ich möchte in einer Datei das Zeichen "~" durch ein "#" ersetzen.
Kann mir hier jemand helfen?
Danke vorab.
Werner
Hallo Leute,
ich möchte in einer Datei das Zeichen "~" durch ein "#" ersetzen.
Kann mir hier jemand helfen?
Danke vorab.
Werner
sollte funktionieren.Code:sed -i 's/~/#/g' datei
Hallo jeebee,
geht leider nicht.
Wollte dies mit awk in einer Batch ausführen.
Gruß
Werner
dann mit awk:Variante ohne temporäre Datei. Oder:Code:{ rm test.txt && awk 'gsub("~","#")' > test.txt; } < test.txtmit temporärer Datei.Code:awk 'gsub("~","#")' test.txt > tmp; mv tmp test.txt
hat super funktioniert!
jetzt möchte ich noch in der Datei die ersten 3 Zeilen "rausschmeissen".
Geht dass?
[ Annahme Unix/Linux; coreutils und shell mit Pipelinig vorhanden ]
mit dem folgenden Befehl kannst du die ersten 3 Zeilen abschneiden:Dies gibt die Datei test.txt von der 4. Zeile an aus.Code:tail -n +4 test.txt > tmp ; mv tmp > test.txt
Also:Code:tail -n +4 | awk 'gsub("~","#")' test.txt > tmp; mv tmp test.txt
Wenn Du schon beim awk bist: awk ' { if (NR < 4) getline; } ... '
awk kennt etliche vordefinierte Variablen (siehe "man awk"), NR steht für die aktuelle Zeile der Eingabedatei. getline ist sowas wie next in Perl oder continue in anderen Sprachen - Überspringen aller folgenden Befehle und Fortsetzen mit dem nächsten Schleifenwert (für awk die nächste Eingabezeile).
Jan
Hmm, danke das hab ich beim Überfliegen der man-page nicht gefunden... War mir aber ziemlich sicher dass sowas gehen muss.
Lesezeichen