Forum Programmation.shell Aide expression Shell bourne

Posté par  .
Étiquettes : aucune
0
8
mar.
2007
Salut a tous,
allors j'ai écris un script de shell (filter.sh) qui interagit avec une petite application de compilation automatique de paquettages .rpm grace a ant. le but du script è de recupérer le nom du package rpm finale (et seulement le nom) dans le fichier de log.

exemple fichier de log:

Citation:
- building php.tar.gz
+ tar -xvzf php.tar.gz
+ cd php
+ ./configure
+ make
+ rpmbuild -bb php.spec
- generating package for php
wrote: php.rpm
wrote: php-debuginfo.rpm

après l'execution du script:

Code :

./filter.sh log php.rpm php-debuginfo.rpm


/!\ le script doit pouvoir fonctionner avec n'importe quel paquettage, le résultat doit etre l'extraction de tout ce qui comporte .rpm.
à l'aide.
Merci.
  • # Ou est ton probleme ?

    Posté par  . Évalué à 2.

    > j'ai écris un script de shell (filter.sh)

    Et apres tu nous demande de l'ecrire ....

    Etonnement ton enoncé ressemble à celui d'un TP.

    Par contre je ne vois pas trop ou tu as besoin d'aide (a part t'ecrire le script).


    K
    • [^] # Re: Ou est ton probleme ?

      Posté par  . Évalué à 2.

      ah je me suis mal exprimé ou bien t'as pas lut le titre du tpoic!!!
      j'avais juste besoin d'une expression... et je viens tous juste de résoudre, il s'agissait d'une erreur de syntaxe!

      rpm=`cat /var/log/build/$log | grep 'wrote:' | sed -e 's\wrote:\ \g'`

      avant j'avais ecris:

      rpm=`cat /var/log/build/$log | grep 'wrote:' | sed 's\wrote:\ \g;'`
      • [^] # Re: Ou est ton probleme ?

        Posté par  . Évalué à 1.

        en même temps, tu avais filé tellement peu d'infos techniques sur ton problème (tu noteras que la ligne buggée n'était pas dans ton message originel) qu'on aurait cru un end user ;-)

        au passage, tu fais un appel inutile à cat. grep sait très bien lire dans des fichiers.
        sed aussi en fait ...

        +
        • [^] # Re: Ou est ton probleme ?

          Posté par  . Évalué à 1.

          c'est vrai qu'il y avait peu d'info techniques, mais `cat` me sert dans cette commande dans la mesure où je pourrais réutiliser l'output pour d'utres traitements `cut`, `paste`...
          • [^] # Re: Ou est ton probleme ?

            Posté par  . Évalué à 1.

            désolé pour la réponse tardive (3 semaines de vacances)

            non, tu n'as toujours pas besoin de cat. La sortie de grep est aussi réutilisable dans tous les pipe qu'on veut :)
      • [^] # Re: Ou est ton probleme ?

        Posté par  (site web personnel) . Évalué à 2.

        Je propose plus simple :
        rpm=$(awk '/wrote:/ {print $2}' /var/log/build/$log)

Suivre le flux des commentaires

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