Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Feb 2012 03:50:44 -0600 (CST)
From:      Robert Bonomi <bonomi@mail.r-bonomi.com>
To:        freebsd-questions@freebsd.org, guru@unixarea.de
Subject:   Re: some kind of binary sed(1) command
Message-ID:  <201202020950.q129oitm013971@mail.r-bonomi.com>
In-Reply-To: <20120202080656.GA7403@sh4-5.1blu.de>

next in thread | previous in thread | raw e-mail | index | archive | help

> From: Matthias Apitz <guru@unixarea.de>
>
> El dia Thursday, February 02, 2012 a las 01:51:56AM -0600, Robert Bonomi escribio:
>
> Thanks, but the attached script (based on your content and saved to a
> script file) just gives:

*sigh*  the code worked wih gnu sed.

BSD sed is a whole lot more finicky with regard to whitespace.  And, it 
appears that  I've got some bug reports to file. 

Anyway, this is tested on FBSD 7.2:
copy _exactly_, making sure there is no trailing white-space on any line.
Then substitute an actual formfeed char for the {CTL-L}.
FreeBSD sed does not recognize either '\n' or '\f' in the substitution
string -- it strips the '\' and outputs the printable character.  *sigh* 

#!/bin/sh

sed  -e '
:l
/^[*][*]*$/ N
/\n..*$/ P
/\n..*$/ {
s/^.*\n//
b l
}
/\n$/ N
/\n\n[^*][^*]*$/ {
P
s/^.*\n// 
P
s/^.*\n//
b l
}
/\n\n[*]*$/ s/\n\n/\
{CTL-L}/'




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202020950.q129oitm013971>