Script d'extraction des mots
sassou
-
sassou26 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Script d'extraction des mots
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Où sont stockés les mots de passe sur android - Guide
- Générateur de mots - Télécharger - Sécurité
- Ordi mots - Télécharger - Jeux vidéo
2 réponses
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 ;-(
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 ;-(
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
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
Merci, mais encore ???
Par exemple avec ton exemple, ça donnerait quoi au final ?
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