howto:bash-modifier-occurence-dans-plusieurs-fichiers
Bash: Modifier une occurence dans une série de fichiers
Voici un script qui permet de remplacer des données dans beaucoup de fichiers en simultané.
Le principe utilisé est simple:
- rechercher tous les fichiers dans une sous-arborescence de répertoires avec find
- modifier une occurrence avec sed
#! /bin/bash
# On vérifie que le bon nombre d'arguments a été envoyé au script.
if [ $# -ne 3 ] ;
then
echo " Usage : " $0 " 'FILES' 'STRING TO REPLACE' 'REPLACEMENT STRING' "
exit
fi
# On charge les arguments
FILE=$1
TEXTE=$2
REPLACE=$3
# On cherche l'ensemble des fichiers concernés.
FILES=`find -name "$FILE"`
# On applique les modifications
for i in $FILES; do
sed "s/$TEXTE/$REPLACE/g" "$i" > tmp
mv tmp $i
done
Pour se servir du script :
$ script.sh ‘*.txt’ ‘Salut toto’ ‘Adieu titi’
howto/bash-modifier-occurence-dans-plusieurs-fichiers.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1
