#!/bin/bash

#  "subst", un script qui remplace un motif par un autre dans un fichier,
#+ c'est-à-dire "subst Smith Jones lettre.txt".

ARGS=3             # Le script nécessite trois arguments.
E_MAUVAISARGS=65   # Mauvais nombre d'arguments passé au script.

if [ $# -ne "$ARGS" ]
# Teste le nombre d'arguments du script (toujours une bonne idée).
then
  echo "Usage : `basename $0` ancien-motif nouveau-motif nom-fichier"
  exit $E_MAUVAISARGS
fi

ancien_motif=$1
nouveau_motif=$2

if [ -f "$3" ]
then
    nom_fichier=$3
else
	echo "Le fichier \"$3\" n'existe pas."
    exit $E_MAUVAISARGS
fi

#  Voici où se trouve le vrai boulot.
sed -e "s/$ancien_motif/$nouveau_motif/g" $nom_fichier
#  Bien sûr, 's' est la commande de substitut dans sed,
#+ et /motif/ appelle la correspondance d'adresse.
#  "g" ou l'option globale est la cause de la substitution pour *toute*
#+ occurence de $ancien_motif sur chaque ligne, pas seulement la première.
#  Lisez les documents sur 'sed' pour une explication en profondeur.

exit 0    # Appel avec succès du script qui renvoie 0.
