Mehrere Zeilen durch eine ersetzen

06/11/2008 - 11:03 von Jochen Hub | Report spam
Hi,

ich habe ein file etwa wie

a
b
c
key 3
key 89
key 4534
d
e
f

und ich moechte *alle* key-Zeieln durch *eine* Zeile ersetzen; also etwa zu

a
b
c
key NEUEZAHL
d
e
f

Wie geht so was? Habt ihr einen Vorschlag?

Oder kann man das ERSTE Vorkommen von key ersetzen und bei allen
weiteren die key-Zeile loeschen, das kaeme ja auf's gleiche raus?

Danke und Gruesse,

Jochen
 

Lesen sie die antworten

#1 Heike C. Zimmerer
06/11/2008 - 11:51 | Warnen spam
Jochen Hub writes:

Hi,

ich habe ein file etwa wie

a
b
c
key 3
key 89
key 4534
d
e
f

und ich moechte *alle* key-Zeieln durch *eine* Zeile ersetzen; also etwa zu

a
b
c
key NEUEZAHL
d
e
f

Wie geht so was? Habt ihr einen Vorschlag?



Etwa so:

#!/bin/sh

neu="key NEUEZAHL"

while IFS= read -r line; do
case "$line" in
key*) [ "$neu" ] && echo "$neu"; unset neu;;
*) echo "$line";;
esac
done

?

Gruß,

Heike

Ähnliche fragen