diff --git a/src/sed/README.md b/src/sed/README.md index 4df42d8..7518c63 100644 --- a/src/sed/README.md +++ b/src/sed/README.md @@ -130,8 +130,8 @@ ``` > ⚠️ Le _et commercial_ `&` est un caractère spécial dans les expressions -> régulières (il sert dans `$&` à reprendre ce qui a été trouvé), il faut donc -> le banaliser. +> régulières (il sert dans `$&` à reprendre tout ce qui a été trouvé), il faut +> donc le banaliser. Pour appeler ce fichier, il faut utiliser l'option `-f` : @@ -165,6 +165,23 @@ > ⚠️ De la même manière, toutes les lignes à traiter doivent finir par un retour > à la ligne (en particulier la dernière)! +## Modification de fichier + +La commande `sed`, comme beaucoup de commandes UNIX, affiche le fichier qu'elle +modifie sur la sortie standard. +Mais parfois, on voudrait juste pouvoir modifier ce fichier. + +Or, utiliser `sed -e fichier > fichier` ne fonctionne pas (ça peut en +faire un fichier vide, par exemple). On ne peut pas écrire dans un fichier qu'on +est en train de lire (surtout s'il est grand) en utilisant la redirection. + +C'est pourquoi il existe une option `-i` (pour _in place_) qui permet de +modifier le fichier qu'on traite directement. + +```bash +sed -i -e fichier +``` + ## Sélection de lignes `sed` étant un éditeur de ligne généraliste, il comprend beaucoup d'autres commandes que nous ne détaillerons pas ici.