Deseja substituir as palavras por espaço em vários arquivos usando o comando SED [closed]

0

Deseja substituir as palavras por espaço em vários arquivos usando o comando SED

Eu tenho uma palavra como 'Danny' com aspas simples em muitos dos meus arquivos em vários diretórios que eu quero mudar para 'Danny Samuel'

desde que eu tenha um espaço na nova palavra, este comando não funcionará

find . -type f -exec sed -e 's/'Danny'/'Danny Samuel'/g' -i.php '{}' +
    
por Danny 17.04.2014 / 08:47

1 resposta

3

Você não pode ter uma aspa simples entre aspas simples, o ' em 'Danny fecha as aspas.

find . -type f -exec sed -e 's/'Danny'/'Danny Samuel'/g' -i.php '{}' +
                             ^^ !!!!! ^ !!!!!!!!!!!! ^^
                         quoted     quoted         quoted  
                              unquoted    unquoted

Escreva:

find . -type f -exec sed -i.php -e "s/'Danny'/'Danny Samuel'/g" {} +

(note que .php é bastante inesperado como uma extensão para arquivos de backup).

    
por 17.04.2014 / 09:05