Awk -v : on me signale une erreur que je ne..

Fermé
Momo - 2 avril 2004 à 05:59
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 2 avril 2004 à 13:00
Bonjour

SVP,Voici un script en awk dont le but est d'afficher la liste de tous les groupes et le nombre d'usagers de chaque groupe du fichier /etc/passwd (cela marche parfaitement).
Mais je voulais également inviter l'utilisateur d'insérer un Numéro de groupe et d'afficher le nom, le login et le UID de tous les usagers de ce groupe.
Le problème est qu'on me signale une erreur de syntaxe à la ligne où il y a awk-v. Quelqu'un peut m'aider à détecter mon erreur ? Merci d'avance.

#!/bin/sh

#***************************************
#script pour les informations des GID
#***************************************

awk < /etc/passwd 'BEGIN {FS=":"}\

{totaluser[$4]++}

END {for (groupe in totaluser)printf"%-20s%-20s\n",\
groupe, totaluser[groupe]}'|sort |more

awk < /etc/passwd 'BEGIN {FS=":"}
{
print "Nom Login Num_Identification"
print "--------------------------------------------------------"

echo-n " Veuillez entrez un Numéro de groupe: "
read no_groupe

export no_groupe
awk -v groupe=$no_groupe '{ if( $4==groupe)
{ printf "%-25s %-10s %14d\n", $5, $1, $3}}'

(date; cat $*)
NR==1 {print " La date d'aujourd'hui est "$1, $2, $3, $4
print "-----------------------------------------------"}
NR>1 {print" $1," ",$2}

}
A voir également:

1 réponse

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
2 avril 2004 à 13:00
#!/bin/sh
#***************************************
#script pour les informations des GID
#***************************************
awk < /etc/passwd 'BEGIN {FS=":"}\
{totaluser[$4]++}
END { for (groupe in totaluser)printf"%-20s%-20s\n",\
groupe, totaluser[groupe]}'|sort |more
echo -n " Veuillez entrez un Numéro de groupe: "

read no_groupe
export no_groupe

printf "%s\t%s\t%s\n" "Nom" "Login" "Num_Identification"
echo "--------------------------------------------------------"

awk -v groupe=$no_groupe < /etc/passwd 'BEGIN {FS=":"}
{ if( $4==groupe)
{ printf "%s\t%s\t%s\n", $5, $1, $3}
}'

#(date; cat $*)
#NR==1 {print " La date d'aujourd'hui est "$1, $2, $3, $4
#"print "-----------------------------------------------"}
#NR>1 {print" $1," ",$2}

fonctionne déjà mieux,
pas tout testé.
Il faudrait Améliorer la pésentation (printf)
J'ai fait au plus vite :(
Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
0