Mac OSX – Comment puis-je effectuer une recherche et remplacer un texte dans un répertoire entier?

J’ai la structure de dossiers suivante –

Foo/ yc Bar/ ac Baz/ bc Pie/ mc Ham/ xc 

Tout ce que j’ai besoin de faire est simplement de remplacer chaque instance de Alice() dans le répertoire Foo /, qui est mon répertoire actuel et de le transformer en Bob() . J’ai le moment le plus difficile avec cette question sortingviale.

J’ai essayé des variantes de:

 find ./ -type f -print0 | xargs -0 sed -i 's/Alice\(\)/Bob\(\)/g' find ./ -type f -exec sed -i 's/Alice\(\)/Bob\(\)/g' '{}' \; sed 's/Alice\(\)/Bob\(\)/g ' `grep -l -R 'Alice\(\)' .` 

avec exec au lieu de xargs et semblent être des erreurs de gettings comme:

 Can't do inplace edit: . is not a regular file. sed: RE error: illegal byte sequence 

etc. Quelqu’un peut-il m’aider s’il vous plaît ici?

Mac intégré BSD sed n’est pas le même que GNU sed .

BSD sed

 /usr/bin/sed -i '' 's/foo/bar/g' input.txt 

Note: Une longueur zéro '' est nécessaire pour éditer sur place.

GNU sed

 /usr/local/bin/sed -i 's/foo/bar/g' input.txt