다음 문자열을 바꾸고 싶습니다
바꾸다:'상태 코드: {code}'.format(code=r.status_code) 인쇄
그리고:print('상태 코드: {code}'.format(code=r.status_code))
이것은 내가 실행하고 있는 명령인데 실패합니다.
find ./ -type f -exec gsed 's/'print 'Status Code: {code}'.format(code=r.status_code)'/'print('Status Code: {code}'.format(code=r.status_code))'/g' {} \;
특수 문자 효과를 피하기 위해 \를 사용해 보았지만 여전히 실패하고 정지됩니다.
find ./ -type f -exec gsed -i 's/print \'Status Code: {code}\'.format\(code=r.status_code\)/print\(\'Status Code: {code}\'.format\(code=r.status_code\)\)/g' {} \;
>
>
>
답변1
표현식 주위에 큰따옴표를 사용하거나 각 리터럴 주위에 작은따옴표를 닫았다가 다시 열 수 있습니다 . '
예를 들면 다음과 같습니다 .'\''
sed "s/print 'Status Code: {code}'.format(code=r.status_code)/print('Status Code: {code}'.format(code=r.status_code))/"
sed 's/print '\''Status Code: {code}'\''.format(code=r.status_code)/print('\''Status Code: {code}'\''.format(code=r.status_code))/'