Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2011, 16h14   #1
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 109
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 109
Points : 33
Points : 33
Par défaut AWK - Savoir si un group placé en argument existe dans /etc/group ?

Bonjour;

J'ai un shell général (Main) dans lequel je fais :
Code :
1
2
3
4
5
 
echo ">> Verification de la presence du groupe Unix placé en argument. Group:*<>"$4"<>*"
awk -v grp=$4 -F ':' '{
        $1~/^\$grp$/ { print "===> Le groupe existe dans /etc/group.OK.****" }
}' /etc/group >> $FIC_LOG
Mais cela ne fonctionne pas !
Comment passer l'argument numero 4 ($4) de mon shell general (Main) à l'AWK pour qu'il print dans mon fichier de log (FIC_LOG) ?

Ou si vous avez la solution avec egrep ou grep je suis preneur...!

Merci de votre aide.
Moostiq est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/09/2011, 16h50   #2
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
Bonjour,

awk n'utilise pas le signe dollar pour distinguer ses variables
il vaut peut-être mieux vérifier l'égalité plutôt qu'une correspondance de regex :
Code :
1
2
3
4
5
 
awk -v grp="$4" -F':' 'BEGIN{
print ">> Verification de la presence du groupe Unix placé en argument. Group:*<>"grp"<>*"
}
$1 == grp { print "===> Le groupe existe dans /etc/group.OK.****" }' /etc/group >> $FIC_LOG
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 21/09/2011, 16h59   #3
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Alternative qui devrait le faire aussi :

Code :
1
2
3
echo ">> Verification de la presence du groupe Unix placé en argument. Group:*<>\"$4\"<>*"
 
egrep -qo "^${4}:" /etc/group && echo "===> Le groupe existe dans /etc/group.OK.****" >> $FIC_LOG
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/09/2011, 16h59   #4
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 109
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 109
Points : 33
Points : 33
OK ! Merci beaucoup pour ce renseignement.

Je suis passé par ailleurs :
Code :
1
2
3
4
5
6
7
8
9
 
echo ">> Verification de la presence du groupe Unix placé en argument. Group:*<>"$4"<>*"
if [ `cat /etc/group | awk -F ":" '{print $1}' | grep -wc $4` -eq 1 ]
then
echo "==> Le groupe est existant. OK."
else
       echo "**** Erreur le groupe Unix n'existe pas ! voir /etc/group";
      exit 1;
fi
Moostiq est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 21/09/2011, 17h34   #5
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 071
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 071
Points : 4 154
Points : 4 154
beurk
c'est horrible.
uuoc
uuog
uuo[

getent n'est pas install(é|able) ?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/09/2011, 20h04   #6
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 055
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 44
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 3 055
Points : 4 934
Points : 4 934
Code bash :
1
2
3
grep "^$1:" /etc/group 1>/dev/null\
    && echo "$1 présent dans /etc/group"\
    || echo "groupe $1 n'existe pas dans /etc/group"
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h24.


 
 
 
 
Partenaires

Hébergement Web