Mail Archives: cygwin/2004/08/21/20:38:33
On Sat, Aug 21, 2004 at 07:07:21PM -0400, Igor Pechtchanski wrote:
> On Sat, 21 Aug 2004, Hannu E K Nevalainen wrote:
>
> > Note that there is a difference depending on how you create the file; I'll
> > hand over to cygwin-specialists to explain (or ponder on) why it has to be
> > this way.
> >
> > I'm running BINARY mounts all over, still I get the behaviour below.
> > [snip]
> > === a) ===
> > $ cd # cd to $HOME
> > $ cat >tmp
> > Line 1
> > Line 2
> >
> > Line 3
> > Line 4
> > Line 5
> > $POSIX="" - Hannu AT P450 ~ bash (P)PID=(852)2340, s=0
> > $ od -w8 -t x1z tmp
> > 0000000 4c 69 6e 65 20 31 0d 0a >Line 1..<
> > 0000010 4c 69 6e 65 20 32 0d 0a >Line 2..<
> > 0000020 0d 0a 4c 69 6e 65 20 33 >..Line 3<
> > 0000030 0d 0a 4c 69 6e 65 20 34 >..Line 4<
> > 0000040 0d 0a 4c 69 6e 65 20 35 >..Line 5<
> > 0000050 0d 0a >..<
> > 0000052
> > $ grep '1$' tmp
> > $ d2u tmp # dos2unix
> > tmp: done.
> > $ grep '1$' tmp
> > Line 1
> >
> > === b) ===
> > $ cd
> > $ ls -l tmp2
> > ls: tmp2: No such file or directory
> > $ for (( i=1 ; i<6 ; i++ )) do echo >>tmp2 "Line $i";done
> > $ od -w7 -t x1z tmp2
> > 0000000 4c 69 6e 65 20 31 0a >Line 1.<
> > 0000007 4c 69 6e 65 20 32 0a >Line 2.<
> > 0000016 4c 69 6e 65 20 33 0a >Line 3.<
> > 0000025 4c 69 6e 65 20 34 0a >Line 4.<
> > 0000034 4c 69 6e 65 20 35 0a >Line 5.<
> > 0000043
> > $ grep '1$' tmp
> > Line 1
> >
> > $ rm tmp tmp2
>
> This has to do with the way "cat" behaves. By default, Windows sends
> textmode line endings from the console. Most applications (including od,
> echo, bash, etc) compensate for this somehow, except "cat", which *always*
> replicates the output character by character, doing no processing
> *whatsoever*. AFAIK, this is by design.
>
> Case in point:
>
> $ od -c
> <Enter><Ctrl-D>
> 0000000 \n
> 0000001
> $ cat | od -c
> <Enter><Ctrl-D>
> 0000000 \r \n
> 0000002
> $ perl -pe 1 | od -c
> <Enter><Ctrl-D>
> 0000000 \n
> 0000001
> $ # Note, however:
> $ perl -pe 1 | cat | od -c
> <Enter><Ctrl-D>
> 0000000 \n
> 0000001
> $
See also <http://www.cygwin.com/ml/cygwin/2003-04/msg02268.html>
I once sent a patch to a transient coreutils maintainer but
there was no followup.
Pierre
--
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/
- Raw text -