Перенаправление стандартного вывода в новый файл добавляет странный символ в конец имени файла в cygwin - PullRequest
4 голосов
/ 04 января 2010

У меня проблемы со сценарием оболочки в Cygwin.Конкретная команда, вызывающая проблему, выглядит следующим образом:

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

Проблема в том, что файл создается со странным символом в конце, поэтому вместо имени config.xml.tmp он называется "config.xml.tmp».Из команды «ls» и из командной строки Windows это выглядит как «config.xml.tmp?»

Если я запускаю команду sed только из оболочки, файл будет назван правильно, и скрипт будет работатьнормально в Linux.

Есть идеи, что может быть не так?Спасибо!

1 Ответ

2 голосов
/ 04 января 2010

Я предполагаю, что в вашем файле сценария нет окончаний строк UNIX. Символ \r в конце строки Windows - это то, что добавляется в конец вашего имени файла. Вы можете проверить с помощью od или hexdump, чтобы убедиться, что это проблема.

...