sed anomaly in bash script
$ TEST=`echo 'c:\windows' | sed -e s.\\..g` $ echo $TEST c:\\windows file name=sed.sh TEST=`echo 'c:\windows' | sed -e s.\\\.\.g' echo $TEST /file $ bash -x sed.sh ++ echo 'c:\windows' ++ sed -e 's.\.\g' sed -e expression #1, char 7: unterminated 's' command + TEST= + echo 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? Thanks, -- cyg Simple -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: sed anomaly in bash script
On 14/11/2014 17:20, cyg Simple wrote: $ TEST=`echo 'c:\windows' | sed -e s.\\..g` $ echo $TEST c:\\windows file name=sed.sh TEST=`echo 'c:\windows' | sed -e s.\\\.\.g' echo $TEST /file $ bash -x sed.sh ++ echo 'c:\windows' ++ sed -e 's.\.\g' sed -e expression #1, char 7: unterminated 's' command + TEST= + echo 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? Try: TEST=$(echo 'c:\windows' | sed -e 's.\\..g') echo $TEST -- Cliff -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: sed anomaly in bash script
On 14/11/14 17:20, cyg Simple wrote: $ TEST=`echo 'c:\windows' | sed -e s.\\..g` $ echo $TEST c:\\windows file name=sed.sh TEST=`echo 'c:\windows' | sed -e s.\\\.\.g' echo $TEST /file $ bash -x sed.sh ++ echo 'c:\windows' ++ sed -e 's.\.\g' sed -e expression #1, char 7: unterminated 's' command + TEST= + echo 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? I don't have a Windows PC to hand ATM, but the following works in Fedora bash: #!/usr/bin/bash TEST=$(echo c:\windows | sed -e s;;;g) echo ${TEST} Dave. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: sed anomaly in bash script
On 11/14/14, 9:20 AM, cyg Simple cygsim...@gmail.com wrote: $ TEST=`echo 'c:\windows' | sed -e s.\\..g` $ echo $TEST c:\\windows file name=sed.sh TEST=`echo 'c:\windows' | sed -e s.\\\.\.g' echo $TEST /file $ bash -x sed.sh ++ echo 'c:\windows' ++ sed -e 's.\.\g' sed -e expression #1, char 7: unterminated 's' command + TEST= + echo 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? Thanks, -- cyg Simple 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 character. Bob -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Re: sed anomaly in bash script
cyg Simple cygsimple at gmail.com writes: $ TEST=`echo 'c:\windows' | sed -e s.\\..g` $ echo $TEST c:\\windows file name=sed.sh TEST=`echo 'c:\windows' | sed -e s.\\\.\.g' echo $TEST /file $ bash -x sed.sh ++ echo 'c:\windows' ++ sed -e 's.\.\g' sed -e expression #1, char 7: unterminated 's' command + TEST= + echo Does anyone have a suggestion on turning c:\windows into c:\\windows? $ t='c:\windows' ; tt=${t/\\/} ; echo $t $tt c:\windows c:\\windows Never ever use odd numbers of backslashes, when dealing with backslashes! ;^ \\ is the character backslash, doubled for each layer of interpretation it has to pass thru before it gets to where it's going. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple