Rhys Causey
Rhys Causey

Reputation: 787

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

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!

Upvotes: 4

Views: 2377

Answers (1)

Carl Norum
Carl Norum

Reputation: 225002

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.

Upvotes: 2

Related Questions