sed funciona na linha de comando, mas não no script [closed]

2

Por que isso funciona quando eu digito direto na linha de comando:

oldversion=12345
newversion=67890
sed -i "s/${oldversion}/${newversion}/g" "/home/user/MyDir_${newversion}/MyDir_${newversion}.reg"

Mas quando eu coloco em um script, não:

#!/bin/bash
oldversion=12345
newversion=67890
sed -i "s/${oldversion}/${newversion}/g" "/home/user/MyDir_${newversion}/MyDir_${newversion}.reg"

É executado como ./myscript.sh

Gera o erro

sed: -e expression #1, char 16: unknown option to 's'

    
por IGGt 19.07.2016 / 16:02

1 resposta

1

O caractere 16 no script sed não existe. Este é o caractere " que sed está reclamando, e isso significa que seu editor ou método de entrada o substituiu por uma versão não-ASCII de " . Meu palpite seria ou ou ¨ .

Use file no seu arquivo para adivinhar a codificação. Deve ser "ASCII". Qualquer outra coisa sugere que o arquivo contém coisas que você não pretendia estar lá.

    
por 19.07.2016 / 20:08