This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: sed 4.1.5 adds extra CR with input file path in Windows format
- From: Dave <kilroyd at googlemail dot com>
- To: David Mastronarde <mast at colorado dot edu>
- Cc: cygwin at cygwin dot com
- Date: Sun, 25 Jun 2006 21:30:59 +0100
- Subject: Re: sed 4.1.5 adds extra CR with input file path in Windows format
- References: <Pine.LNX.4.64.0606241421040.4607@druid.hvem.colorado.edu>
David Mastronarde wrote:
After upgrading sed from 4.1.4 to 4.1.5, I found that line endings were
being converted from CRLF to CRCRLF when the input file was specified
with a windows file path:
% sed -e 's/g5a/setname/g' < 'c:\cygwin\home\mast/sedtestin' > ! sedtestout
Converting the path to cygwin format eliminated the problem.
C:\cygwin / system textmode
C:\cygwin/bin /usr/bin system textmode
C:\cygwin/lib /usr/lib system textmode
C:\cygwin\usr\X11R6\lib\X11\fonts /usr/X11R6/lib/X11/fonts system binmode
. /cygdrive system textmode,cygdrive
Have a read of http://cygwin.com/cygwin-ug-net/using-textbinary.html
Stepping through it:
% sed -e 's/g5a/setname/g' < 'c:\cygwin\home\mast/sedtestin' > ! sedtestout
rule b. sedtestin input will be read in binary mode. i.e it reads \r\n
redirection of input is done in binmode from rule c.
ditto output redirection.
writing of the file is done in textmode due to your mounts (rule a).
Hence \r\n coming out of sed becomes \r\r\n.
Try specifying the output file in MSDOS format, '.\sedtestout'.
Dave.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/