[UNIX] crée un script pour recheche en boucle

Résolu
Karamurat Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour

j'ai besoin de votre aide (débutant kornshell UNIX) pour crée un script qui va rechercher en boucle dans le serveur ,

bon j'ai un serveur de donner qui est schématiser ainsi :
http://img297.imageshack.us/img297/4287/newbitmapimagexg3.png

j'ai déjà crée un script qui permet de faire la recherche mais pas en boucle

petite aperçu de mon script:

# usage: sh Lget_company_access.sh NSG GFM ARM APG

export LIST=$*
STRING="|"
for LEVEL in $LIST
do
STRING="${STRING}(lawsonlevel=${LEVEL})"
done

QUERY="(&(|(slbapplication=lawson)(slbapplication=lawsonlf))(${STRING}))"

/lawtrans/secu/bin/Lsearch "${QUERY}" lawsonlevel lawsonchildren lawsoncompanyI
lawsoncompanyF


c'est a dire

lorsque j'execute le script sur par exemple MEA

donc je rentre sous unix :
./Lget_company_access.sh MEA

il me trouve tout une liste de compagnie :

dn: cn=MEA,ou=struct,o=slb,c=an
lawsonlevel: MEA
lawsonchildren: APG
lawsonchildren: ARM
lawsonchildren: BMP
lawsonchildren: CHG
lawsonchildren: EEG
lawsonchildren: FMC
lawsonchildren: GFM
lawsonchildren: ING
lawsonchildren: INM
lawsonchildren: IRG
lawsonchildren: TMV
lawsonchildren: MEA_PHQ
lawsonchildren: MEA_FE
lawsonchildren: MEA_C/JA
lawsonchildren: QTG


je suis donc obliger d'appeler encore une fois mon script pour voir ce que contient GFM par exemple :

./Lget_company_access.sh GFM

j'ai cette fois ci le N°de compagnie de GFM et les enfants de GFM

dn: cn=GFM,ou=struct,o=slb,c=an
lawsonlevel: GFM
lawsonchildren: AE
lawsonchildren: OM
lawsonchildren: YE
lawsoncompanyF: 9936


de la refais appel au script pour voir ce qui ya dans AE OM YE

je fais donc :
./Lget_company_access.sh AE OM YE

et j'ai

dn: cn=OM- Oman,ou=struct,o=slb,c=an
lawsonlevel: OM
lawsoncompanyF: 2
lawsoncompanyF: 24
lawsoncompanyF: 4000
lawsoncompanyF: 4050
lawsoncompanyF: 4051
lawsoncompanyF: 4052
lawsoncompanyF: 8

dn: cn=YE- Yemen,ou=struct,o=slb,c=an
lawsonlevel: YE
lawsoncompanyF: 4000


cette fois ci c'est bon je touche donc le fond .

La problématique commence ici:

Je veux créer un script qui permette de faire la recherche en boucle sans devoir rappeler mon script ,
1- que le fichier de sortie comporte uniquement Lawsoncompany(F ou I): N°de compagnie
2- ne comportent pas de chevauchement , pas de doublon le tout dans l'ordre

c'est a dire sous cette forme pour la compagnie GFM (par exemple):

lawsoncompanyF: 2
lawsoncompanyF: 8
lawsoncompanyF: 24
lawsoncompanyF: 4000
lawsoncompanyF: 4050-4052
lawsoncompanyF: 9936


voila voila merci encore et d'avance
Configuration: Windows XP
Firefox 2.0.0.5

4 réponses

  1. Karamurat Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   2
     
    bonjour

    please j'ai vraiment besoin d'aide svp.

    dites au moins comment on fais pour faire la recherche en boucle svp.

    merci
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Fais une fonction de ton script et rappelle-la après avoir fait un test de condition d'existence d'un (ou des) enfant(s).

    ;-))
    0
    1. Karamurat Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   2
       
      je te remercie d'avoir répondu

      le problème c'est que je débute en UNIX , depuis hier je rame a trouver une soluce mais je sais que c'est faisable ,je ne connais que le strict minimum et c'est pourquoi pourrait tu m'éclaircir car je ne c'est pas comment faire pour faire une fct du script en la rappellent après avoir fait un test de condition d'existence d'un (ou des) enfant(s).

      mercie du fond du coeur
      0
  3. Karamurat Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   2
     
    SVP

    j'ai vraiment besoin d'aides

    pouvez vous au moins m'aider a améliorer mon script .please
    0
  4. Karamurat Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   2
     
    je n'ai pas a réussi , mais je vais commencer étape par étape,
    pour commencer pourriez vous m'aider a convertir cette liste de telle sorte que je n'ai uniquement lawsoncompanyF(ou I):N°de compagnie
    c'est a dire ne comportent pas de chevauchement , pas de doublon le tout dans l'ordre

    Fichier d'entrer :

    dn: cn=MEA,ou=struct,o=slb,c=an
    lawsonlevel: MEA
    lawsonchildren: APG
    lawsonchildren: ARM
    lawsonchildren: BMP
    lawsonchildren: CHG
    lawsonchildren: EEG
    lawsonchildren: FMC
    lawsonchildren: GFM
    lawsonchildren: ING
    lawsonchildren: INM
    lawsonchildren: IRG
    lawsonchildren: TMV
    lawsonchildren: MEA_PHQ
    lawsonchildren: MEA_FE
    lawsonchildren: MEA_C/JA
    lawsonchildren: QTG
    dn: cn=GFM,ou=struct,o=slb,c=an
    lawsonlevel: GFM
    lawsonchildren: AE
    lawsonchildren: OM
    lawsonchildren: YE
    lawsoncompanyF: 9936
    dn: cn=OM- Oman,ou=struct,o=slb,c=an
    lawsonlevel: OM
    lawsoncompanyF: 2
    lawsoncompanyF: 24
    lawsoncompanyF: 4000
    lawsoncompanyF: 4050
    lawsoncompanyF: 4051
    lawsoncompanyF: 4052
    lawsoncompanyF: 8
    dn: cn=YE- Yemen,ou=struct,o=slb,c=an
    lawsonlevel: YE
    lawsoncompanyF: 4000


    Fichier de sortie
    lawsoncompanyF: 2
    lawsoncompanyF: 8
    lawsoncompanyF: 24
    lawsoncompanyF: 4000
    lawsoncompanyF: 4050-4052
    lawsoncompanyF: 9936


    merci d'avance
    0
    1. Karamurat Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   2
       
      bon j'ai du récolter pas mal d' info a droite a gauche (collaborateur ,forum) pour en arriver la :
      je n'arrive pas a créer la recherche en boucle , j'appelle le script(Lget_company_access.sh) qui est dans mon dossier pour lancer la recherche sur MEA puis créer un fichier de sortie FILE et c'est a cet endroit que je bloque car je veux lancer une seconde fois voir plusieurs fois afin qu'il me trouve toute l'arborescence de MEA .(concerne uniquement la première ligne)

      l'autre partie du script consiste a convertir la liste d'entrer FILE

      /homelaw/MTemir/Lget_company_access.sh MEA | grep -i lawsonchildren > FILE
      
      grep -E 'lawsoncompanyF:|lawsoncompanyI:' FILE > fichiertmp1
      sort -u -k1,1 -k2,2n fichiertmp1  > FILE1
      rm fichiertmp1
      
      awk '
      function FctFinEnreg()
      {
              if (TopListe == 1) {
                      print "-"Wprecedent
                      TopListe=0
              } else {
                      print ""
              }
      }
      BEGIN {
              Wcie=""
              Wprecedent=9999999
              TopListe=0
      }
      {
              if ($1 == Wcie || NR == 1)
              {
                      Wcie=$1
                      Wsuivant=Wprecedent+1
      "ert.sh" 44 lines, 657 characters
      
      0
    2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      Concernant le "grep", essaie comme ça plutôt :
      grep "lawsoncompany[FI]" FILE  | sort -un -t: +1 > FILE1
      ;-))
      0
      1. Karamurat Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   2 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        hmm...
        le probleme c'est que la converstion ne se passe pas comme il faut , car au lieu que j'ai ça :


        lawsoncompanyF: 2
        lawsoncompanyF: 4-5
        lawsoncompanyF: 7-9
        lawsoncompanyF: 12
        lawsoncompanyF: 15-18
        lawsoncompanyF: 4040
        lawsoncompanyF: 4050-4052
        lawsoncompanyF: 4060
        lawsoncompanyF: 4062
        lawsoncompanyF: 9930
        lawsoncompanyF: 9933
        lawsoncompanyF: 9935-9939
        lawsoncompanyF: 9942
        lawsoncompanyI: 2
        lawsoncompanyI: 15
        lawsoncompanyI: 311
        lawsoncompanyI: 1708
        lawsoncompanyI: 1996
        lawsoncompanyI: 1998-1999


        j'ai ça:

        lawsoncompanyF: 2
        lawsoncompanyF: 4-5
        lawsoncompanyF: 7-9
        lawsoncompanyF: 12
        lawsoncompanyF: 15-18
        lawsoncompanyI: 311
        lawsoncompanyI: 1708
        lawsoncompanyI: 1996
        lawsoncompanyI: 1998-1999
        lawsoncompanyF: 4031
        lawsoncompanyF: 4040
        lawsoncompanyF: 4050-4052
        lawsoncompanyF: 4060
        lawsoncompanyF: 4062
        lawsoncompanyF: 9930
        lawsoncompanyF: 9933
        lawsoncompanyF: 9935-9939
        lawsoncompanyF: 9942
        0
      2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        je dirais sort -k 1,1 -k 2,2n
        trier selon le premier champ et le deuxième champ en numérique
        0