Redirecting standard output to new file adds strange character to end of filename in cygwin

StackOverflow https://stackoverflow.com/questions/2001567

  •  18-09-2019
  •  | 
  •  

Question

I'm having trouble with a shell script in Cygwin. The specific command that's causing the problem is this:

sed -e "s/6.0.[0123456789]\{1,\}/6.0.${REV}/g" "path/to/file/config.xml" > "path/to/file/config.xml.tmp"

The problem is that the file is being created with a strange character at the end, so instead of being named config.xml.tmp, it's named "config.xml.tmp". From the "ls" command and from the windows command prompt, it looks like "config.xml.tmp?"

If I run the sed command just from the shell, the file named correctly, and the script works fine in Linux.

Any idea what could be wrong? Thanks!

Was it helpful?

Solution

My guess is that your script file doesn't have UNIX line endings. The \r character in the windows line ending is what's getting added to the end of your filename. You can check with od or hexdump to see if that's the problem.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top