Re: sed-Frage

From: Oliver Fromme <olli(at)secnetix.de>
Date: Tue, 9 Oct 2001 12:43:08 +0200 (CEST)

MSNET <bsd(at)rinke-bochum.de> wrote:
> Ich habe folgende Befehlszeile in einem Script:
>
> sed -e "s/^/grep /; s/|/ /; s/$/ | grep '`date "+%h"`[[:space:]]*`date "+%e"`[[:
> space:]]'/" suche.txt > temp.sh
>
> Nun möchte ich an das Ende dieser Zeile noch ein Zeilenumbruch und ein echo ""in
> der nächsten Zeile einfügen.

Sicher, daß das bisherige sed-Kommando überhaupt schon das
tut, was man von ihm erwartet? Zumindes vermute ich, daß
das erste Dollarzeichen gequotet weren sollte. Die doppel-
ten Anführungszeichen hinter dem date haben vermutlich auch
nicht den erwarteten Effekt, da sie die äußeren (vorüberge-
hend) wieder aufheben (ist in diesem Fall egal, weil man
+%h oder +%e nicht quoten muß).

> Nun möchte ich an das Ende dieser Zeile noch ein Zeilenumbruch und ein echo ""in
> der nächsten Zeile einfügen.

Du meinst, am Ende der Ausgabe, die produziert wird, d.h.
in dem »temp.sh« (und nicht dessen Ausgabe)?

Warum nicht ein Semikolon anstelle eines Zeilenumbruchs?
Das ist einfacher und (*räusper*) übersichtlicher:

sed -e "s/^/grep /; s/|/ /; s/\$/ "\
"| grep '`date +%h`[[:space:]]*`date +%e`[[:space:]]'/; echo \"\"" \
suche.txt > temp.sh

Wenn's unbedingt ein Zeilenumbruch sein soll:

sed -e "s/^/grep /; s/|/ /; s/\$/ "\
"| grep '`date +%h`[[:space:]]*`date +%e`[[:space:]]'/\\
echo \"\"" \
suche.txt > temp.sh

Das ist aber nicht mehr wirklich »schön«. Ich würde sowas
eher in awk o.ä. schreiben, das ist um Größenordnungen bes-
ser lesbar.

> Allerdings finde ich hierzu keine hinreichende Dok
> umentation.

Die manpage von sed(1) ist hinreichend.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"All that we see or seem is just a dream within a dream" (E. A. Poe)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 09 Oct 2001 - 12:43:11 CEST

search this site