J'aimerais exécuter une recherche et un remplacement sur un fichier HTML par le biais de la ligne de commande.
Ma commande ressemble à quelque chose comme ceci :
sed -e s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html > index.html
Lorsque je l'exécute et que je regarde le fichier par la suite, il est vide. Il a supprimé le contenu de mon fichier.
Quand j'exécute ceci après avoir restauré le fichier à nouveau :
sed -e s/STRING_TO_REPLACE/STRING_TO_REPLACE_IT/g index.html
El stdout
est le contenu du fichier, et la recherche et le remplacement ont été exécutés.
Pourquoi cela se produit-il ?
14 votes
Alternative à Perl :
perl -pi -w -e 's/STRING_TO_REPLACE/REPLACE_WITH/g;' index.html
0 votes
Beaucoup de choses liées
sed
pour trouver une chaîne de caractères et remplacer la ligne entière : stackoverflow.com/questions/11245144/0 votes
Voir aussi ceci : Comment faire en sorte que la lecture et l'écriture d'un même fichier dans le même pipeline échouent toujours ? sur Unix et Linux SO.