Unter bestimmten Umstaenden ans Zeilenende anhaengen?

A

Andrea

Routinier
Hi,

ich hab eine Datei, die ein paar 1000 Zeilen lang ist...

In manchen steht am Ende ,=, das ist in Ordnung. Aber die restlichen (die meisten natuerlich) hoeren mit einer Zahl auf... Und an die muesste ich noch ,kl dranhaengen...

Ich hab nur keine Ahnung, wie ich das Zeilenende abfragen kann?

Danke schonmal,
Andrea
 
Ist vielleicht nicht die einfachste Lösung:
1. Du öffest die Datei mit vim ( "vim <dateiname>" in der konsole, vim muss natürlich dafür installiert sein )
2. du tippst ":g/\d$/s/$/,kl/" ein.
3. du tippst ":wq" ein.
 
Dumme Frage, aber wie?

:g... macht den Fehler \sollte von / gefolgt sein (oder so aehnlich), mit ":g passiert gar nicht, ausser dass er zur 2. Zeile springt?

Trotzdem danke,
Andrea
 
Nun denn, hier eine einfachere Lösung:
"sed '/[0-9]$/s/$/,kl/' [dateiname] > [neuerdateiname]"
Als Befehl in der Konsole.
 
Fast =).

Jetzt fehlen in meiner Datei aber die Zeilen mit = hinten... Wie bekomme ich die denn in die gleiche Datei wie die neu erzeugten Zeilen?

Uebrigens funktioniert > nd.txt bei mir nicht, ich muss die mit w datei angeben... Liegt das an mir ?

Andrea

EDIT
Hat sich erledigt, ich hab dank cat und sort die Datei jetzt so wie ich sie haben wollte!
Danke fuer die Hilfe und gute Nacht :-)
 
Zuletzt bearbeitet:
Hallo
Besser mit sed so:
Häng an alle Zeilen, die nicht mit "=" am Enden die Zeichenfolge ",kl" an
Mit GNU sed:
GNU sed Version 4.1.4 geht sogar -i , was die Datei direkt editiert
Code:
sed -i -e '/=$/!s/\(.*\)$/\1,kl/' inputdatei
sollen es nur die Zeilen mit Ziffern am Ende sein:
Code:
sed -i -e '/[[:digit]]$/s/\(.*\)$/\1,kl/' inputdatei

Wenn du kein GNU sed > 4.x.x hast dann natürlich mit Umleitung
Code:
sed -i -e '/[[:digit:]]$/s/\(.*\)$/\1,kl/' inputdatei >outputdatei
geht natürlich auch mit perl
Code:
perl -pi -e 's/^(.*)$/$1,kl/g if /[0-9]$/' inputdatei


HTH
Gruß Wolfgang
 

Ähnliche Themen

Gentoo auf Core 2 Duo - Ehrfahrungsbericht

Server-Monitoring mit RRDTool

Zurück
Oben