Zweizeiligen Input einzelig machen

18/01/2009 - 14:53 von Helmut Schneider | Report spam
Hi,

ich hab mit sed und tr gespielt, bekomme aber kein vernünftiges Ergebnis.
Ich will einen zweizeiligen Input einzeilig machen:

192.168.0.1
Cleared: Sun Jan 18 13:51:32 2009
192.168.0.2
Cleared: Sun Jan 18 14:02:25 2009

Soll werden:

192.168.0.1 (Sun Jan 18 13:51:32 2009)
192.168.0.2 (Sun Jan 18 14:02:25 2009)

Zwar kann ich mit tr das newline ersetzen, aber nicht nur für jede zweite
Zeile.

Wie geht's richtig?

Und als zweite Frage: Wie arbeite ich bei sed mit Variablen?

echo Test | sed "s/Test/${1}String/g"
werde zu
TestString

Danke und Gruß, Helmut

No Swen today, my love has gone away
My mailbox stands for lorn, a symbol of the dawn
 

Lesen sie die antworten

#1 Alexander Bartolich
18/01/2009 - 15:05 | Warnen spam
Helmut Schneider schrieb:
ich hab mit sed und tr gespielt, bekomme aber kein vernünftiges Ergebnis.
Ich will einen zweizeiligen Input einzeilig machen:

192.168.0.1
Cleared: Sun Jan 18 13:51:32 2009
192.168.0.2
Cleared: Sun Jan 18 14:02:25 2009

Soll werden:

192.168.0.1 (Sun Jan 18 13:51:32 2009)
192.168.0.2 (Sun Jan 18 14:02:25 2009)



sed -ne '{ h; n; H; x; s/ *Cleared: */ (/; s/$/)/; p }'

Und als zweite Frage: Wie arbeite ich bei sed mit Variablen?

echo Test | sed "s/Test/${1}String/g"
werde zu
TestString



Das Zeichen & steht für den gesamten gefundenen Suchtext.

echo Test | sed 's/Test/&String/g'

Wenn du nur Teile des Suchtexts einsetzen willst, dann
geht das so:

$ echo Test | sed 's/\(T\)est/\1String/g'
TString

seq 0 1 99 | xargs -I. echo 'Romani Ite Domum!'

Ähnliche fragen