Citation
Eric92
cancerus a écrit :tu peux utiliser awk:
fNAME=`echo $wNAME| awk '{print $2}'`
lNAME=`echo $wNAME| awk '{print $1}'`
MONMAIL=`echo $fNAME"."$lNAME`
printf $MONMAIL"@domain.com," >> $MAILLING
La ligne 3 serait plus simplement :
MONMAIL="$fNAME.$lNAME"
Mais comment est défini wUID ?
Une autre proposition (à tester)
:
MAILLING=/home/mailling.abook
# On extrait "nom prenom" pour les UID > 9999
getent passwd | awk -F: '{if ($3 > 9999) print
$5}' >/tmp/users.$$
# On écrit les adresses email
awk '{printf "%s.%s@domain.com,", $2, $1}'
</tmp/users.$$ >$MAILLING
rm /tmp/users.$$
NB : "/tmp/users.$$" permet un fichier temporaire
unique ($$ = pid du shell).
Attention : ça ne marchera pas avec les noms
composés (LE GRAND)...
C'est un très bon réflexe de:
1) utiliser "$$"
2) travailler dans "/tmp"
On peut même utiliser "$0" pour donner au nom du fichier temporaire une racine rappelant du programme utilisé style
fic_tmp="/tmp/`basename $0`.$$"
machin truc >$fic_tmp
autre truc <$fic_tmp
rm -f $fic_tmp
Mais ici, ce n'est pas vraiment la peine d'utiliser un fichier temporaire alors que le pipe sert à ça...
MAILLING=/home/mailling.abook
# On extrait "nom prenom" pour les UID > 9999
# Et on renvoie ça dans l'écriture des email
getent passwd | awk -F: '{if ($3 > 9999) print
$5}' | awk '{printf "%s.%s@domain.com,", $2, $1}' >$MAILLING
@:-)
Poste le Thursday 5 May 2005 11:21:42