sed relata “comando desconhecido”

sed relata “comando desconhecido”

Eu escrevi isto:

sudo sed -i ‘s/3389/3390/g’ /etc/xrdp/xrdp.ini

Isso produziu este erro:

sed: -e expression #1, char 1: unknown command: `'

Responder1

Compare o seu

 sudo sed -i ‘s/3389/3390/g’ /etc/xrdp/xrdp.ini

versus o correto

 sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini

Verifique os diferentes tipos de cotações.

Tenha cuidado ao copiar e colar de editores de documentos como Writer ou Word, pois eles geralmente alteram automaticamente aspas (e outras coisas) para corresponder aos locais.

Responder2

Eu tive o mesmo erro, mas a causa foi diferente. Não usei o caractere ` nem copiei e colei o código de algum lugar. Eu estava escrevendo um script sed com uma condição e usei uma nova linha para o comando. Postar isso aqui caso alguém tenha o mesmo problema e não tenha sido ajudado pela resposta aceita.

Veja como replicar o erro:

echo class:myclass > myfile
cat script
/class:/
s/myclass/MYCLASS/g #ctrl+d to exit
sed -f script myfile

Saída:

sed: file script line 2: unknown command: `
'

O que corrige é colocar o comando após a condição (na mesma linha), ou usar chaves, para que o script fique assim:

/class:/ s/myclass/MYCLASS/

Ou isto:

/class:/ {
s/myclass/MYCLASS/
}

informação relacionada