Perl: Rechercher et remplacer une chaîne précise dans plusieurs fichier texte

J'ai besoin pour obtenir tous les .fichier de configuration dans un répertoire donné et dans chacun de ces fichiers j'ai besoin de rechercher une chaîne spécifique et de le remplacer avec un autre basé sur le fichier.

Pour l'e.g si j'ai 3 fichier dans le répertoire donné:

 for  my_foo.config - string to search "fooCommon >" replace with "~ /fooCommon[\/>"
 for  my_bar.config - string to search "barCommon >" replace with "~ /barCommon[\/>"
 for  my_file.config - string to search "someCommon >" replace with "~ /someCommon[\/>"

S'il vous plaît laissez-moi savoir comment cela peut être fait en Perl?

Ci-dessous le code que j'ai essayé dans les scripts shell:

OLD="\/fooCommon >"
NEW="~ \"\/fooCommon[^\/]*\" >"
DPATH="/myhome/aru/conf/host*.conf"
BPATH="/myhome/aru/conf/bakup"
TFILE="/myhome/aru/out.tmp.$$"
[ ! -d $BPATH ] && mkdir -p $BPATH || :
for f in $DPATH
do
  if [ -f $f -a -r $f ]; then
   /bin/cp -f $f $BPATH
   echo sed \"s\/$OLD\/$NEW\/g\"
   sed "s/$OLD/$NEW/g" "$f" > $TFILE && mv $TFILE "$f"
  else
   echo "Error: Cannot read $f"

fi
done
/bin/rm $TFILE
Qu'avez-vous essayer?
j'ai essayé en script shell.. mais encore une fois je ne suis pas en mesure de déclarer le tableau pour string_to_search et string_to_match. Je suis totalement nouveau pour perl et shell script. Je vais poster mon script shell ici
Veuillez mettre à jour votre post au lieu de cela plutôt que de faire des commentaires au sujet de votre tente.

OriginalL'auteur user2589079 | 2013-11-15