Redirecionando a saída padrão para novo arquivo adiciona o caráter estranho para final do nome do arquivo no cygwin
Pergunta
Estou tendo problemas com um shell script em Cygwin. O comando específico que está causando o problema é o seguinte:
sed -e "s/6.0.[0123456789]\{1,\}/6.0.${REV}/g" "path/to/file/config.xml" > "path/to/file/config.xml.tmp"
O problema é que o arquivo está sendo criado com um personagem estranho, no final, então ao invés de ser nomeado config.xml.tmp, é nomeado "config.xml.tmp?". A partir do comando "ls" e das janelas prompt de comando, parece que "config.xml.tmp?"
Se eu executar o comando sed apenas a partir do shell, o arquivo nomeado corretamente, eo script funciona bem em Linux.
Qualquer idéia do que pode estar errado? Obrigado!
Solução
Meu palpite é que seu arquivo de script não tem fins de linha UNIX. O personagem \r
no final de linha do Windows é o que está sendo adicionado ao final do seu nome de arquivo. Você pode verificar com od
ou hexdump
para ver se esse é o problema.