저는 아마존 리눅스를 사용하고 있습니다. 검색 및 교체를 수행하기 위해 sed를 사용하려고합니다. 다음과 같은 오류가 발생합니다...
[jboss@mydevbox nodejs]$ sed -i -e "s/test.smokeTest('(.*?)', '(.*?)', '(.*?)')/test.smokeTest('username', 'password', 'http://localhost:8081/myproject')/g" test.js
sed: -e expression #1, char 96: unknown option to `s'
위의 문제를 해결하기 위해 무엇을 해야 할지 잘 모르겠습니다. 단지 작은따옴표와 큰따옴표에 몇 가지 문제가 있다는 것뿐입니다.
편집하다:제가 사용하고 있는 샘플 파일입니다
//Creates the new browser and Logins in
console.log('Validation Complete');
var test = require('./js/Optimus.js');
test.smokeTest('####', '####', 'http://mydomain.com/myproject/');
답변1
첫 번째:
- 에 사용했던 마지막 큰따옴표를
”
변경하세요"
.
그런 다음
주요 문제는 sed 옵션을 사용하고 있지만 문자열에도 (따옴표가 없음 /
)이 포함되어 있다는 것입니다. 가장 간단한 해결책은 구분 기호를 다음과 같이 변경하는 것입니다.s
/
#
s
sed -i -e "s#test.smokeTest('(.*?)', '(.*?)', '(.*?)')#test.smokeTest(‘username’, ‘password’, 'http://localhost:8081/myproject')#g” test.js
나는 또한 당신이 이 문제를 해결해야 한다고 믿습니다.
‘
귀하는 및’
주변에서username
및 을 (를) 사용하고 있습니다password
. 로 변경하십시오'
.
새 파일을 편집합니다.
방금 질문에 추가한 파일의 경우 대괄호를 이스케이프 처리하고 다음을 제거해야 합니다 ?
.
sed -i -e "s#test.smokeTest('\(.*\)', '\(.*\)', '\(.*\)')#test.smokeTest('username', 'password', 'http://localhost:8081/myproject')#g" test.js