次の文字列を変更したい
変える:'ステータスコード: {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))/'