complicado comando substituir em arquivos usando sed [duplicado]

0

Eu quero substituir as strings abaixo

substituir: print 'Código de status: {code}'. format (code = r.status_code)

com: print ('Código de status: {code}'. format (code = r.status_code))

Aqui está o comando que executei, que falha

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' {} \;

Eu tentei usar \ para evitar o efeito de caracteres especiais, mas ainda falha e apenas trava.

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' {} \;
> 
> 
> 
    
por nanoseconds 11.11.2018 / 02:26

1 resposta

1

Você pode usar aspas duplas em torno da expressão ou fechar e reabrir as aspas simples em torno de cada literal ' , como '\'' :

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))/'
    
por 11.11.2018 / 02:55