Shell

使用 sed 替換文件中的複雜命令

  • November 11, 2018

我想替換下面的字元串

替換:列印’狀態程式碼:{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))/'

引用自:https://unix.stackexchange.com/questions/481035