Primeiro de tudo:
- A última cota dupla usada é
”altere para".
Então:
O principal problema é que você está usando / para a opção s de sed, mas sua string também contém (un-quoted) / . A solução mais simples é mudar para # para o delimitador s , como este:
sed -i -e "s#test.smokeTest('(.*?)', '(.*?)', '(.*?)')#test.smokeTest(‘username’, ‘password’, 'http://localhost:8081/myproject')#g” test.js
Eu também acredito que você deveria resolver isso:
- Você está usando
‘e’em torno deusernameepassword. Mude-os para'.
Editar para novo arquivo.
Para o arquivo que você acabou de adicionar à sua pergunta, você precisa escapar dos parênteses e remover o ? :
sed -i -e "s#test.smokeTest('\(.*\)', '\(.*\)', '\(.*\)')#test.smokeTest('username', 'password', 'http://localhost:8081/myproject')#g" test.js