J'utilise ce qui suit pour rechercher récursivement dans un répertoire une chaîne spécifique et la remplacer par une autre :
grep -rl oldstr path | xargs sed -i 's/oldstr/newstr/g'
Cela fonctionne bien. Le seul problème est que si la chaîne de caractères n'existe pas alors sed
échoue car il ne reçoit aucun argument. C'est un problème pour moi, car je l'exécute automatiquement avec ANT et la construction échoue parce que sed
échoue.
Existe-t-il un moyen de le rendre infaillible au cas où la chaîne ne serait pas trouvée ?
Je suis intéressé par une solution simple en une seule ligne que je peux utiliser (pas nécessairement avec grep
o sed
mais avec des commandes Unix courantes comme celles-ci).
0 votes
La raison pour laquelle je veux garder cela aussi simple que possible est que mon script se connecte à un serveur distant et exécute cette ligne avec SSH. si j'utilisais un shell script pour cela, je devrais copier le shell script sur le serveur avant et ensuite l'exécuter là. j'essaie d'éviter cela et de garder cela simple. merci.
1 votes
superuser.com/questions/257250/
1 votes
En venant ici depuis Google, je cherchais la chaîne exacte donnée dans la question ! (Je n'ai pas eu le problème dont souffre le PO)