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

Momo -  
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   -
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   Statut Modérateur Dernière intervention   934
 
#!/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