[UNIX] crée un script pour recheche en boucle
Résolu
Karamurat
Messages postés
45
Statut
Membre
-
dubcek Messages postés 19021 Statut Contributeur -
dubcek Messages postés 19021 Statut Contributeur -
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
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:
- [UNIX] crée un script pour recheche en boucle
- Cree un compte google - Guide
- Créer un lien pour partager des photos - Guide
- Comment créer un groupe whatsapp - Guide
- Script vidéo youtube - Guide
- Comment cree un compte gmail - Guide
4 réponses
bonjour
please j'ai vraiment besoin d'aide svp.
dites au moins comment on fais pour faire la recherche en boucle svp.
merci
please j'ai vraiment besoin d'aide svp.
dites au moins comment on fais pour faire la recherche en boucle svp.
merci
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).
;-))
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).
;-))
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
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
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 :
Fichier de sortie
merci d'avance
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
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
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
hmm...
le probleme c'est que la converstion ne se passe pas comme il faut , car au lieu que j'ai ça :
j'ai ça:
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