remplacer une chaine de caractère par une autre dans des fichiers via un script

Publié le par SHREK

PROBLEMATIQUE :
 je veux remplacer une chaine de caractère, par exemple N44024F4T54 par N44024F2T100 dans des fichiers.

SOLUTION :
je crée un script exemple toto.x que j'appellerai en passant comme argument le nom du fichier à traiter.

dans toto.x j'ai les lignes suivantes:

LIGNES DANS LE SCRIPT
EXPLICATIONS
 export tmp=/tmp/EB.$$  $$ sera égal au numéro de process de la session  ce qui  permet de gérer le multi  utilisateur.
 On  défini la  variable "tmp" comme étant le nom du   fichier temporaire unique.
  RE="[nN]44024[fF]4[tT]54"
 On défini RE
  grep "$RE" $1 > /dev/null 2>&1 || {  on recherche la valeur de RE dans le fichier passé  en argument
  
  echo $1 ne contient pas $RE
 On prévient que le fichier ne sera pas traité
  exit 0  On sort du script
  }
 Fin du test
  sed "s/$RE/N44024F2T100/g" $1 > $tmp && mv $tmp $1 On remplace la valeur dans RE par  N44024F2T100 sur toute la ligne (/g) dans  le fichier passé en argument ($1) et on envoi le résultat dans le fichier temporaire unique.
Si tout c'est bien passé on remplace le fichier passé en argument par le fichier temporaire unique.
                                                           
                                                                   

                                                          

                                                                                                   
                                                                                                   
                                                                                                      
   


Publié dans informatique-UNIX

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article