207 votes

Modifications sur place avec sed sous OS X

J'aimerais éditer un fichier avec sed sous OS X. J'utilise la commande suivante :

sed 's/oldword/newword/' file.txt

La sortie est envoyée au terminal. fichier.txt n'est pas modifié. Les changements sont enregistrés dans fichier2.txt avec cette commande :

sed 's/oldword/newword/' file1.txt > file2.txt

Cependant, je ne veux pas d'un autre dossier. Je veux juste éditer fichier1.txt . Comment faire ?

J'ai essayé l'option -i. Il en résulte l'erreur suivante :

sed: 1: "file1.txt": invalid command code f

3 votes

Quelle est la commande exacte que vous utilisez lorsque vous essayez la commande -i drapeau ?

4voto

JustADude Points 50

Cette opération crée des fichiers de sauvegarde. Par exemple sed -i -e 's/hello/hello world/' testfile pour moi, crée un fichier de sauvegarde, testfile-e, dans le même répertoire.

0voto

Vincent Lal Points 77

Vous pouvez utiliser :

sed -i -e 's/<string-to-find>/<string-to-replace>/' <your-file-path>

Ejemplo:

sed -i -e 's/Hello/Bye/' file.txt

Cela fonctionne parfaitement en Mac .

0voto

Albert Points 21

Si vous devez remplacer plus d'un mot différent :

sed -i '' -e 's/_tools/tools/' -e 's/_static/static/' test.txt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X