Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 09 Nov 2011 18:56:07 -0500
From:      Jason Lenthe <lenthe@comcast.net>
To:        freebsd-questions@freebsd.org
Subject:   Re: sed vs gnu sed
Message-ID:  <4EBB1317.5060101@comcast.net>
In-Reply-To: <4EBA5646.5030102@unsane.co.uk>
References:  <4EBA5646.5030102@unsane.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On 11/09/11 05:30, Vincent Hoffman wrote:
> 'Hi all,
>          I'm trying to move a script from a linux box to a freebsd box.
> All going well as its just a bash script and bash is bash, however there
> is one line I'm unable to use directly, as bsd sed (correctly according
> to SUS at least, I believe[1]) appends a newline when writing to
> standard out, gnu sed doesnt. example
> BSD
> [backup@banshee ~]$ echo -n "/boot:7:1:5; /:7:1:5; /var:7:1:5"  | sed -n
> 's/[[:space:]]*;[[:space:]]*/;/gp'
> /boot:7:1:5;/:7:1:5;/var:7:1:5
> [backup@banshee ~]$
>
> LINUX
>
> [backup@amber ~]$ echo -n "/boot:7:1:5; /:7:1:5; /var:7:1:5"  | sed
> 's/[[:space:]]*;[[:space:]]*/;/g'
> /boot:7:1:5;/:7:1:5;/var:7:1:5[backup@amber ~]$
>
> is there any easy way to make our sed do the same as gnu sed here?
>

You could also just lop off the newline with tr -d '\n':

echo -n "/boot:7:1:5; /:7:1:5; /var:7:1:5"  | sed -n 
's/[[:space:]]*;[[:space:]]*/;/gp' | tr -d '\n'




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