Comment «rechercher et remplacer» de nombreux fichiers?


11

J'utilise la grepcommande pour rechercher une chaîne dans de nombreux fichiers. Existe-t-il quelque chose de similaire à «rechercher et remplacer»?

Réponses:


19

Vous recherchez la sedcommande. Par exemple, pour remplacer "chien" par "chat" dans tous les fichiers texte du répertoire courant:

sed -i 's/dog/cat/' *.txt

1
Simple et sympa.
Luis Alvarado

1

sed me vient à l'esprit. Exemple:

sed s/cat/dog/ <input >output

Cela recherche le chat dans une ligne et met le chien à sa place dans l'entrée du fichier et écrit dans la sortie du fichier.



0

Vous pouvez utiliser Vim en mode Ex:

for b in *.txt
do
  ex -sc '%s/OLD/NEW/g|x' "$b"
done
  1. % sélectionner toutes les lignes

  2. s remplacer

  3. g remplacer toutes les instances de chaque ligne

  4. x sauver et fermer

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.