sed anomaly in bash script
Fri Nov 14 18:10:00 GMT 2014
On 11/14/14, 9:20 AM, "cyg Simple" <firstname.lastname@example.org> wrote:
>$ TEST=`echo 'c:\windows' | sed -e s.\\.\\\\.g`
>$ echo $TEST
>TEST=`echo 'c:\windows' | sed -e s.\\\.\\\\\.g'
>$ bash -x sed.sh
>++ echo 'c:\windows'
>++ sed -e 's.\.\g'
>sed -e expression #1, char 7: unterminated 's' command
>CYGWIN_NT-6.1 HOSTNAME 1.7.32(0.274/5/3) 2014-08-13 23:06 x86_64 Cygwin
>Does anyone have a suggestion on turning c:\windows into c:\\windows?
The combination of shell globbing and sed metacharacters, with appropriate
escaping, is rather difficult, and nearly impossible to read.
I would suggest using the 'sed -f file' so you can completely eliminate
any shell processing.
The file should contain the string 's/\\/\\\\/', without the quotes ;)
Of course, if you want your script to be in a single file, this won't
work, so one of the other responders answers may be more suitable.
FYI, I would suggest not using the dot as a pattern separator, it could be
confusing to novice readers, and also removes it as a pattern match
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin