Subject: Re: Sed Bug ?
To: None <tech-userlevel@netbsd.org>
From: James K. Lowden <jklowden@schemamania.org>
List: tech-userlevel
Date: 02/02/2007 00:33:42
Stephane Engel wrote:
> I'm trying to merge all the line of a text file in a single line
> separate by a "#".
> The following GNUsed (from pkgsrc) script just work fine:
>     gsed -e ":a;" -e "$!N;s/\n/#/;ta;" < $FILE_IN > $FILE_OUT
> the same script with our sed return nothing (empty file/output)
>     sed -e ":a;" -e "$!N;s/\n/#/;ta;" < $FILE_IN > $FILE_OUT
>     Doing some more testing, it's seem for me that our sed is not able
> to join the last line.

My sed man page says "You can't, however, use a literal newline character
in an address or in the substitute command."  

However, this works:

	while read line
	do 
		printf '%s' $line
	done <  $FILE_IN \
	| xargs printf '%s#\n' > $FILE_OUT

HTH. 

--jkl