Exploitation tableau

Résolu
dino -  
 dino -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    donne un exemple avant après
    0
  3. dino
     
    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
    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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 ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dino
     
    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
    0
  7. dino
     
    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
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    des espaces dans les noms de fichiers ?
    0
  9. dino
     
    Euh non ...par contre des espaces entre les deux "|" et le nom :

    |"espace"fic1"espace"|
    0
  10. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    non, ils sont ignorés, montre la ligne du tableau
    0
  11. dino
     
    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.
    0
  12. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    $ cat tableau
    script2.sh | type | rep | fic1 | fich1 | O
    $ touch fic1
    $ ./k3 script2.sh | ksh
    $ ls fich1
    fich1
    0
  13. dino
     
    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é ...:-(
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

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

      {print "mv " $4, $5}
      0
  14. dino
     
    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 ...
    0
  15. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    suivant les claviers, il y a plusieurs | ou ¦
    vérifier que celui du script est le même que dans le fichier
    0
  16. dino
     
    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 !!!!
    0