Script d'extraction des mots

sassou -  
sassou26 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   6 430
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   6 430
 
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   Statut Membre Dernière intervention  
 
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