Script d'extraction des mots

Fermé
sassou - 21 mai 2013 à 08:36
sassou26 Messages postés 3 Date d'inscription mardi 21 mai 2013 Statut Membre Dernière intervention 24 mai 2013 - 21 mai 2013 à 15:59
Bonjour,

je voudrait extraire des mot d'une fichier de configuration. voici un exemple de fichier:

access to attrs=carlicense,homephone
by self write
by users read
by anonymous none

access to attrs=répertoire by dn.regex="cn=administrateur,ou=suse,dc=fr" write



access to attrs=car by group="cn=lesresponsables,o=INT,c=fr" none



le problème c que le script n'affiche pas la parti else de la commande if.

voici le script:

object=$(grep '^access' "$FILE" | tr -s ' ' | cut -d ' ' -f 3)
object=$(echo "$object" | sort | uniq)

for obj in $object ; do

subject=$(grep "^access[ ]\+to[ ]\+$obj[ ]\+by[ ]" "$FILE" | cut -d ' ' -f 5)
subject+=$'\n'
access=$(grep "^access[ ]\+to[ ]\+$obj[ ]\+by[ ]" "$FILE" | grep '\(read\|write\|auth\|search\|compare\|none\)$'|cut -d ' ' -f 6)
subject=$( echo "$subject" | cut -d ' ' -f 5 |cut -d '=' -f 3 | cut -d ',' -f 1)
obj=$( echo "$obj" | cut -d '=' -f2)


if [ $access="(read|write|auth|search|compare)" ]
then
echo "USER|$obj|$subject|permit|$access" > $OUTPUT
else
echo "USER|$obj|$subject|deny|$access" >> $OUTPUT
fi
done
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
21 mai 2013 à 10:38
Salut,

Euh... le "then" et l" "else" sont censés retourner quoi comme résultat exactement ?

Parce qu'honnêtement il a l'air un peu fouillis ton script ;-(
0
sassou26 Messages postés 3 Date d'inscription mardi 21 mai 2013 Statut Membre Dernière intervention 24 mai 2013
21 mai 2013 à 15:13
salut,

je doit extraire les droit d'accès du serveur ldap,dans un fichier texte qui a la structure suivante :

User|objet|sujet|permit/deny|action

merci
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
21 mai 2013 à 15:15
Merci, mais encore ???

Par exemple avec ton exemple, ça donnerait quoi au final ?
access to attrs=carlicense,homephone
by self write
by users read
by anonymous none

access to attrs=répertoire by dn.regex="cn=administrateur,ou=suse,dc=fr" write

access to attrs=car by group="cn=lesresponsables,o=INT,c=fr" none
0
sassou26 Messages postés 3 Date d'inscription mardi 21 mai 2013 Statut Membre Dernière intervention 24 mai 2013
21 mai 2013 à 15:59
le script que j'ai fait donne le résultat de recherche des une seul ligne qui commence par access , je vai faire le plus qu'un ligne aprés:

user|répertoire|administrateur|permit|write

group|car|lesresponsables|deny|none
0