Script shell

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
bonjour,
je voudrai faire un script shell qui ajoute du texte à la fin d'un fichier texte existant. En fait concraitement j'ai un fichier xml tout simple, je veux ajouter à la fin du fichier xml un autre noeud avec ses fils,
Est ce quelcun pourrait m'aider à le faire parceque j'en ai aucune idée sur le shell!
merci d'avance!
Configuration: Windows XP
Firefox 2.0.0.1

4 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    echo "Texte à rajouter" >> ton fichier.xml
    ;-))
    0
    1. Utilisateur anonyme
       
      merci pour la réponse mais je veux ajouter mon texte juste avant la dernière ligne, comment je pourrais le faire ??
      merci encore !
      0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Re-

    Avec "sed" :
    sed -i.bak '$i"Texte à rajouter"' fichier.xml
    Explications :

    - -i.bak : crée un fichier de sauvegarde en renommant le fichier original en "fichier.xml.bak

    - $i : "$" représente l'adresse (ici la dernière ligne) et "i" pour insertion. Donc "insérer" avant la dernière ligne

    - Texte à rajouter : le texte à rajouter

    - fichier.xml : le fichier d'entrée et de sortie

    Pour faire des essais, enlève l'option "-i.bak", le résultat s'affichera alors sur la sortie standard (l'écran).

    ;-))
    0
  3. Utilisateur anonyme
     
    merci , et si je veux passer le texte en parametre , je fais comment ?
    merci encore !
    c'est très gentil!
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    En supposant que tu passes via un script "bash" à l'intérieur duquel tu appelles la commande "sed", la syntaxe sera du genre :
    sed '$i'"$1" fichier.xml
    Il faut quoter (simple quote ( '...' )) l'expression "$i" (dernière ligne - insertion) et double quoter ( "..." ) le paramètre "$1" passé au shell.

    Lors de ton appel (ton_programme.sh "le_paramètre") il faudra là aussi "double quoter" le paramètre pour éviter des erreurs dues à des espaces...

    ;-))
    0
    1. Utilisateur anonyme
       
      Merci pour votre aide, c'est gentil de votre part,
      le problème est résolu,
      Merci!
      0