david <[EMAIL PROTECTED]> wrote:
> Jeff Westman wrote:
>
> > I need a one-liner to convert all occurances read from a Unix
> pipe
> > of
> >
> > 'backslash' + 'literal new line (hex 0a)'
> >
> > to become just
> >
> > 'literal new line (hex 0a)'
> >
> > That is, remove the '\' only when it preceeds a new-line.
> Again,
> > this must be read from a pipe. This is what I have so far, but
> it
> > doesnt do work:
> >
> > cat dfile | perl -pe 'BEGIN { $str = ord(10); }
> s!\\$str!$str!g'
> >
> > Suggestions?!
>
> that's because:
>
> [panda]# perl -le 'print ord(10)'
> 49
> [panda]# perl -e 'print chr(10)'
>
> [panda]#
>
> you want chr(10):
>
> [panda]# cat dfile
> \abcd\xxx\yyy\
> 1234\zzz
>
> [panda]# perl -pe 's.\\\n.\n.g' < dfile
> \abcd\xxx\yyy
> 1234\zzz
>
> [panda]# perl -pe 'BEGIN{$n = chr(10)} s.\\$n.$n.g'
> \abcd\xxx\yyy
> 1234\zzz
That did the trick. Thanks for catching my error.
Jeff
>
> david
> --
> s$s*$+/<tgmecJ"ntgR"tgjvqpC"vuwL$;$;=qq$
> \x24\x5f\x3d\x72\x65\x76\x65\x72\x73\x65
> \x24\x5f\x3b\x73\x2f\x2e\x2f\x63\x68\x72
> \x28\x6f\x72\x64\x28\x24\x26\x29\x2d\x32
> \x29\x2f\x67\x65\x3b\x70\x72\x69\x6e\x74
> \x22\x24\x5f\x5c\x6e\x22\x3b\x3b$;eval$;
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> <http://learn.perl.org/> <http://learn.perl.org/first-response>
>
>
__________________________________
Do you Yahoo!?
Yahoo! Search - Find what you�re looking for faster
http://search.yahoo.com
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>