Forum Programmation.shell bizarrerie sed

Posté par  .
Étiquettes : aucune
0
16
oct.
2009
Bonjour à tous,

j'écris un petit script shell me permettant de vérifier la taille de mes tables dans une base de données. Sil les tables atteignent la taille que j'ai défini alors elles doivent etre sauvegardées sous un autre nom puis vidées par la suite.
Mais voilà mon sed me permettant de remplacer le nom des tables par un autre nom dans mon fichier sql me montre bien à l'exécution que le remplacement à eu lieu mais quan je vérifie le fichier aucune modification ne s'est opérée. pourtant en exécutant cette même commande (sans les variables) dans le shell tout se passe correctement.

Et aussi malgré le fait que je ne précise pas de mot passe il me demande toujours le mot de passe sql.

Un petit exemple de mon script:


#!/bin/bash
# Script de vidage de la base de donnée
########################################## New script #########
dossier="/home/toto/save_sql"
sql="show table status"
passwd=
mysql -u root -e "$sql" -s test > result_rq.txt

#Spécification du caractère tabulation comme délimiteur de champs
date=`date +"%d%m%Y"`
for i in `awk 'BEGIN {FS=":|\t"} {if ($9 >= 4096) print $1}'< result_rq.txt`;
do
nomfic=$i"_"$date
mysqldump -u root test $i > $dossier/$nomfic.sql;
sed "s/$i/$nomfic/" $dossier/$nomfic.sql;
#sql1="create table "$nomfic
#Envoi de mail
#mail -s 'Sauvegarde mensuelle' toto@toto.com <
# la table $nomfic a bien été sauvegardée
#EOMAIL
echo "la table " $nomfic " a bien été sauvegardée";
done


Merci pour les retours
  • # sed -i

    Posté par  . Évalué à 2.

    Par défaut sed ne remplace pas le contenu d'un fichier, il fait la substitution seulement sur la sortie standard. Pour modifier le fichier il faut utiliser l'option -i de sed :
    sed s/$i/$nomfic/" $dossier/$nomfic.sql;
    • [^] # Re: sed -i

      Posté par  . Évalué à 4.

      Ouhlà, erreur de frappe ensommeillée, le code correct est le suivant :
      sed -i "s/$i/$nomfic/" $dossier/$nomfic.sql;
      • [^] # Re: sed -i

        Posté par  . Évalué à 2.

        slt milkajinka, ça marche nickel merci beaucoup!!!

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.