Zeichen in Textdateien einfügen
Mit den beiden mächtigen UNIX-Tools sed und awk Zeichen in Textdateien einfügen.


In die Datei test.txt soll in jeder Zeile ab der 10.Stelle ein Semikolon eingefügt werden und das Ergebnis in eine neue Datei neuedatei.txt geschrieben werden.

Die Version mit awk:

awk '{printf "%s;%s\n", substr($0, 1, 9), substr($0, 10) }' datei.txt > neuedatei.txt

Erklärung: awk bekommt als Kommando ein printf, welches die nachfolgenden 2 Teilstrings ausgibt. Der erste Teilstring reicht dabei von Position 1 bis Position 9 einschliesslich, der zweite Teilstring reicht von Position 10 bis zum Ende der Zeile. Das Ergebnis auf der Standardausgabe wird in die neue Datei umgeleitet.

Die Version mit sed:

sed 's/\(.\{10\}\)/\1;/' datei.txt > neuedatei.txt

Erklärung:

Die Funktion "s" von sed sucht und ersetzt Teilstrings. Die Syntax lautet

Syntax: s/Suchstring/Ersetzungsstring/

Mit \( und \) wird im Suchausdruck eine Zeichenfolge geklammert, auf die
im Ersetzen-Ausdruck mit \1 zurückgeriffen werden kann. Mit dem "." werden beliebige Zeichen angesprochen (regulärer Ausdruck). Mit .\{10\} werden 10 beliebige Zeichen angesprochen. Im Ersetzen-Teil steht dann \1 für die geklammerten ersten 10 Zeichen.



Autor:
Leider noch kein Bild von unixoid -/- vorhanden.

Bewertung: +++-- (54 Prozent)

Druckansicht | Idee per Mail empfehlen | Idee bewerten Gut bewerten Schlecht bewerten

ZurückZurück

Neuen Kommentar zur Idee schreiben