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

Résolu/Fermé
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 - 23 juil. 2007 à 14:46
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 26 juil. 2007 à 12:14
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
A voir également:

4 réponses

Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 2
24 juil. 2007 à 07:38
bonjour

please j'ai vraiment besoin d'aide svp.

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

merci
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
24 juil. 2007 à 07:52
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
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 2
24 juil. 2007 à 08:05
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
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 2
24 juil. 2007 à 12:32
SVP

j'ai vraiment besoin d'aides

pouvez vous au moins m'aider a améliorer mon script .please
0
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 2
25 juil. 2007 à 08:27
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
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 2
25 juil. 2007 à 16:20
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
25 juil. 2007 à 20:50
Salut,

Concernant le "grep", essaie comme ça plutôt :
grep "lawsoncompany[FI]" FILE  | sort -un -t: +1 > FILE1
;-))
0
Karamurat Messages postés 43 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 4 janvier 2011 2 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
26 juil. 2007 à 09:36
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
26 juil. 2007 à 12:14
je dirais sort -k 1,1 -k 2,2n
trier selon le premier champ et le deuxième champ en numérique
0