Shell
使用 sed 替換文件中的複雜命令
我想替換下面的字元串
替換:列印’狀態程式碼:{code}’.format(code=r.status_code)
with: 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' {} \; > > >
您可以在表達式周圍使用雙引號,或者關閉並重新打開每個文字周圍的單引號
'
,例如'\''
: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))/'