Date: Sat, 15 Apr 2000 14:17:21 -0500 From: Dan Nelson <dnelson@emsphone.com> To: Grigory Kljuchnikov <grn@ispras.ru> Cc: Arcady Genkin <a.genkin@utoronto.ca>, freebsd-questions@FreeBSD.ORG Subject: Re: A sed question Message-ID: <20000415141721.B29750@dan.emsphone.com> In-Reply-To: <Pine.GSO.4.20.0004151047370.27653-100000@gate.ispras.ru>; from "Grigory Kljuchnikov" on Sat Apr 15 11:03:56 GMT 2000 References: <878zygz9z0.fsf@tea.thpoon.com> <Pine.GSO.4.20.0004151047370.27653-100000@gate.ispras.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Apr 15), Grigory Kljuchnikov said:
> On 14 Apr 2000, Arcady Genkin wrote:
> > Dan Nelson <dnelson@emsphone.com> writes:
> > > Sure; to specify more than one command, you need to pass them with the
> > > -e flag:
> > > sed -e 's/etc/etc/' -e 's/etc/etc/'
> >
> > Oh, sorry, I meant something else. I meant two commands per _matched_
> > line, not per command line. Something like:
> >
> > sed '/^Subject: / s/\[PHP3\] *//g s/\[PHP4BETA] *//g'
> > ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
> > Command 1 Command 2
> >
>
> There is only one command per line in sed or several commands
> per line with -e option.
After a bit more reading of the manpage, you can actually do what you
want. There is only one *command* per line, but each command can have
several *functions*, and 's' is a function. You can use a
function-list by separating them with newlines and putting { } around
the whole thing. so
sed -e '/^Subject: /{ s/\[PHP3\] *//g
s/\[PHP4BETA] *//g
}'
will do what you want.
--
Dan Nelson
dnelson@emsphone.com
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000415141721.B29750>
