Date: Sat, 7 Apr 2007 12:00:17 -0600 (MDT) From: Warren Block <wblock@wonkity.com> To: Olivier Regnier <oregnier@steelbox.org> Cc: freebsd-questions@freebsd.org Subject: Re: script perl with sed command Message-ID: <20070407114330.D68971@wonkity.com> In-Reply-To: <4617B954.7010507@steelbox.org> References: <4617B954.7010507@steelbox.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 7 Apr 2007, Olivier Regnier wrote:
> I have a problem with my perl script with the command sed. Here is a example
> of my code:
>
> # Selecting the fast server
> print "Using the server called $server";
> system(`/usr/bin/sed 's|\*default host=\(.*\)|\*default host=${server}|'
> $standard_supfile > $standard_supfile.copy`);
> system('/bin/mv $standard_supfile.copy $standard_supfile');
>
> But in console i have this message:
> sed: 1: "s|*default host=(.*)|*d ...": unescaped newline inside subsitute
> pattern
Most likely there is a newline at the end of $server because it was
output from backticks. To fix that, you'd use chomp:
chomp(my $server = `fastest_csvsup -Q -c us`);
Just a general note: Perl's s/ command does more than sed's, with less
hassle, and you wouldn't have to mess with shell escapes.
-Warren Block * Rapid City, South Dakota USA
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070407114330.D68971>
