Remplacer une chaîne de caractère dans plusieurs fichiers
2004/05/09
Code:
for fichier in *_desc.htm; do sed -r "s/#IMPLIED/<span class=\"attr_implied\">#IMPLIED<\/span>/" $fichier > $fichier~; cp $fichier{~,}; done
Explications: recherche tous les fichiers dans le répertoire en cours qui finissent par _desc.htm. Ensuite j'exécute sur chacun la commande sed ( éditeur en ligne ) qui remplace la chaine #IMPLIED par <span class="attr_implied">#IMPLIED</span>. Puisque la commande sed envoit normalement le résultat à l'écran, je redirige vers > un nouveau fichier (sinon ca l'efface tout). Ensuite je copie le contenu du nouveau fichier dans l'ancien. cp $fichier{~,} signifie: cp $fichier~ $fichier
Merci à Robin Millette pour le support (irc://irc.freenode.org/#linux-quebec)