Zweite Spalte gegen ein Wert austauschen

26/02/2009 - 10:34 von Knut Rauscher | Report spam
Hallo,

bekommt man es mit sed hin nur den zweiten Wert einer Spalte
mit OK zu ersetzen:

Folgende Datei ist vorhanden:

,-
| #
| # Kommentar
| #
|
| 12345 6789
| abcde efghi
`-

Nach der Konvertierung soll die Datei
wie folgt aussehen:

,-
| #
| # Kommentar
| #
|
| 12345 OK
| abcde OK
`-

Mein erste Ansatz war: sed 's/[ \t].*$/OK/'
Nur leider werden dort Leerzeilen und
Kommentar auch ausgewertet und das OK
wird ganz rangezogen.

Evtl. kann mir einer von euch etwas weiterhelfen.

Schöne Grüße

sendet Knut
 

Lesen sie die antworten

#1 Hauke Laging
26/02/2009 - 11:12 | Warnen spam
Knut Rauscher schrieb am Donnerstag 26 Februar 2009 10:34:

Mein erste Ansatz war: sed 's/[ \t].*$/OK/'
Nur leider werden dort Leerzeilen und
Kommentar auch ausgewertet und das OK
wird ganz rangezogen.



Leerzeilen kann eigentlich nicht sein, denn die matchen ja nicht auf
[ \t].

Versuch es mal so:

sed '/^[^#]/s/\([a-z0-9]\+[ \t]\+\)[a-z0-9]\+$/\1OK/'

Strenggenommen ist das /^[^#]/ am Anfang nicht nötig, aber so weißt
Du gleich, wie man Kommentarzeilen und Leerzeilen (ohne Whitespace)
ausblenden kann.


CU

Hauke
http://www.hauke-laging.de/ideen/

Ähnliche fragen