This is the mail archive of the
mailing list for the Cygwin project.
Re: sed: altered results in bash and cmd
The difference in behaviour you are seeing results from the difference
in the way cmd and bash interpret command lines and pass the resulting
arguments to the specified commands.
To delete all lines beginning with a <space> in a text file, this
command (a) seems correctly composed and (b) works:
sed '/^ .*$/d' filename
but if I use it in a cmd window, the result is that all lines
_containing_ a space are deleted, not just those beginning with a space.
In general, and assuming PATHs etc correctly set, should not Cygwin
command lines work identically in bash and cmd windows? Is this a
problem with sed, with (my) command line syntax above, or with my
understanding of what should work when?
C:\>E:\cygwin\bin\echo.exe '/^ .*$/d'
$ /cygdrive/e/cygwin/bin/echo.exe '/^ .*$/d'
As you can see, the '^' isn't passed to echo.exe by cmd. I'm not really
sure but I think cmd doesn't treat single quotes as quoting characters -
at least not in the way bash does.
If you use double quotes, it shout work in cmd:
C:\>E:\cygwin\bin\echo.exe "/^ .*$/d"
BTW: '/^ /d' shoud be enough to achieve what you are trying to.
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html