#!/bin/sh

# Par Julien MOREAU	( jmoreau@bigfoot.com )

nbps=2				# Nombre de paramètres souhaités
nom_cmde=`basename $0`		# Nom de la commande
usage="Usage: $nom_cmde <chaine_avant> <chaine_apres> [<filename(s)>]"
usage=$usage"\n\tRemplace dans le fichier <filename> la chaine <chaine_avant> "
usage=$usage"\n\tpar la chaine <chaine_apres>."
usage=$usage"\nExemple :\tfind ~ | remplace isty1 isty2"

if test `uname` != "HP-UX" ; then e="-e" ; fi

if [ $# -lt $nbps ] ; then	# Si le nombre de paramètres est incorrecte,
	echo $e $usage 1>&2 ; exit 2	# Affichage aide puis arrêt.
fi

ch_av=$1 ; ch_ap=$2 ; shift 2
if [ $# -lt $nbps ] ; then	# S'il faut lire sur l'entrée standard
	while read ligne ; do
		fichiers="$fichiers $ligne"
	done
else
	fichiers=$*
fi

for fic in $fichiers ; do
	if test ! -r $fic ; then
	    echo "$nom_cmde: $fic => Fichier illisible ou inexistant !" 1>&2
	else

		grep -q $ch_av $fic
		if [ $? -eq 0 ] ; then
			f=`basename $fic`
			echo $e "Remplacement dans $f ... \c"
			ed $fic >> /dev/null << !
g/$ch_av/s//$ch_ap/g
w
!
			echo "OK."
		fi
	fi
done

exit 0		# Sortie sans erreur

