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 deusername
epassword
. 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