Autant le dire tout de site, il n'existe pas de commande magique permettant de réaliser une substitution sur plusieurs fichiers de manière simplet et interactive.
Cela dit, rien n'est perdu pour autant, les commandes Unix/Linux sont suffisamment riches pour réaliser un petit script qui fera l'affaire.
En voici un parmi tant d'autres :
#!/bin/sh
echo "Repertoire:"
ead -r LECHEMIN
echo "Dans fichiers/types:"
read -r LESTYPES
echo "Rechercher:"
read -r SEARCH
echo "Remplacer avec:"
read -r REPLACE
if [[ ! -d ${LECHEMIN} ]]
then
echo "Repertoire [$LECHEMIN] incorrect"
exit 1
fi
if [[ -z ${LESTYPES} ]]
then
echo "Fichiers/Types vide"
exit 2
fi
if [[ -z ${SEARCH} ]]
then
echo "Masque de Recherche vide"
exit 3
fi
if [[ -z ${SEARCH} ]]
then
echo "Masque de Remplacement vide"
exit 4
fi
lesfichiers=`find ${LECHEMIN} -name "${LESTYPES}"`
for fichier in $lesfichiers;
do
cat $fichier | sed s/${SEARCH}/${REPLACE}/g > $fichier.s
if [[ ${?} -eq 0 ]]
then
mv $fichier.s $fichier
echo "Replace in $fichier"
fi
done;
exit 0;
Aucun commentaire:
Enregistrer un commentaire