Como substituir todo texto em uma pasta do Mac?

1

No Mac OS, como faço para encontrar e substituir um determinado texto em todos os diretórios e subdiretórios?

    
por Hoang Pham 28.05.2010 / 17:38

1 resposta

5

Use uma combinação de find(1) e sed(1) :

# Find all files under the directory hierarchy rooted at 'root', and replace
# all instances of the regular expression 'pattern' with 'replacement' in all
# of those files:
find root -type f -exec sed -i~ 's/pattern/replacement/g' '{}' '+'

Se você encontrar limitações de comprimento de linha de comando, substitua o '+' no final por ';' . Isso fará com que ele seja executado mais devagar (já que foi para bifurcar um novo processo para cada arquivo), mas não haverá perigo de uma linha de comando muito longa para sed .

Você também pode substituir apenas alguns arquivos adicionando filtros apropriados a find (por exemplo, -name *.txt para substituir somente arquivos .txt).

    
por 28.05.2010 / 17:54