Exploitation tableau

Résolu
Bonjour,

j'ai un tableau comme suit
un champ1 script
un champ2 utilité : fonc1
un champ3 repertoir : rep1/2
un champ4 fichier generé :fic1/2/3...etc
un champ5 du nouveau nom de fichier : fich1/2/3...etc

je doit ecrire un script qui doit renomer en fonction du champ "script" le fichier qui genere Champ4 avec le nouveau nom champ5

#Champ 1 Champ2 Champ3 Champ4 Champ5
Script0.sh | fonc1 | Rep1 | fic1 | fich1
Script1.sh | fonc1 | Rep1 | fic2 | fich2
Script1.sh | fonc1 | Rep1 | fic3 | fich3
Script1.sh | fonc1 | Rep1 | fic4 | fich4
Script2.sh | fonc1 | Rep1 | fic5 | fich5
Script2.sh | fonc1 | Rep2 | fic6 | fich6

j'avoue que je fais des boucles ,des test mais je ne m'en sort pas :-(

si qlq a une idée ??

merci beaucoup

15 réponses

  1. SUPEEEEEEEEEEEEEEEER ca fct !!

    ce n'est pas le "|" ..le pb etait entre la chaise et le claviers :-) ..le champ awk etait pas bon !!

    Thx a lot !!!!
    1. Contributeur
      suivant les claviers, il y a plusieurs | ou ¦
      vérifier que celui du script est le même que dans le fichier
      1. idem :
        + awk -F | -v n=script2.sh $1 ~ n {print "mv " $4, $5} Tableau_ref.txt
        Usage: mv [-I] [ -d | -e] [-i | -f] [-E{force|ignore|warn}] [--] src target
        or: mv [-I] [-d | -e] [-i | -f] [-E{force|ignore|warn}] [--] src1 ... srcN directory

        je suis sous AIX 7.1 si ca peut aider ...
        1. Bonjour,

          Je n'ai pas compris :-( ....je fais le cat de ton script :

          awk -F "|" -v n=$1 '$1 ~ n {print "mv " $4 $5}' Tableau_ref.txt

          mon tableau ( juste une ligne ..)

          script2.sh | type | rep | fic1 | fich1 | O

          je lance le script comme suit :

          ./cop.ksh script2.sh|ksh

          j'ai le resultats suivant :
          + awk -F | -v n=script2.sh $1 ~ n {print "mv " $4 $5} Tableau_ref.txt
          Usage: mv [-I] [ -d | -e] [-i | -f] [-E{force|ignore|warn}] [--] src target
          or: mv [-I] [-d | -e] [-i | -f] [-E{force|ignore|warn}] [--] src1 ... srcN directory

          desolé ...:-(
          1. Contributeur
            Salut,

            {print "mv " $4 $5}
            Il manque une virgule entre $4 et $5 ;-(

            {print "mv " $4, $5}
        2. Contributeur
          $ cat tableau
          script2.sh | type | rep | fic1 | fich1 | O
          $ touch fic1
          $ ./k3 script2.sh | ksh
          $ ls fich1
          fich1
          1. voila comme je l'ai

            script2.sh | type | rep | fic1 | fich1 | O

            le dernier champs :"O" c pour la reprise ou pas ..mais ce n'est pas important.
            1. Euh non ...par contre des espaces entre les deux "|" et le nom :

              |"espace"fic1"espace"|
              1. Merci ,

                J'ai bien reconduit ton idée mais ca me fait :

                Usage: mv [-I] [ -d | -e] [-i | -f] [-E{force|ignore|warn}] [--] src target
                1. Contributeur
                  comme ça ?
                  $ ./k3 Script1.sh
                  mv fic2 fich2
                  mv fic3 fich3
                  mv fic4 fich4
                  $ cat k3
                  #!/bin/ksh
                  awk -F "|" -v n=$1 '$1 ~ n {print "mv " $4, $5}' tableau

                  pour effectuer les mv :
                  ./k3 Script1.sh | ksh
                  1. non.
                    je doit ecrire un script qui scanne le tableau pour dire si c'est le script0.sh qui est passer (a passer en parmaetre de mon script ) alors renomer le fichier dans le champ4 avec le nom du fichier champ5:

                    ./Monscript.ksh "script0.sh"

                    Merci
                    1. Contributeur
                      avec:
                      #Champ 1 Champ2 Champ3 Champ4 Champ5
                      Script0.sh | fonc1 | Rep1 | fic1 | fich1
                      on crée un script Script0.sh qui renomme fic1 en fich1 , etc ?
                      1. Bonjour,

                        Des scripts passent (par crontab) et cree des fichiers s'appeles fic1/2/3 ...etc .je dois les renomer suivant le tableau en fct du script qui passe en fich1/2/3...etc

                        je ne peux pas le faire sur les scripts eux meme, je doit le faire a partir du tableau.

                        Merci