|
|
|
|
Configuration: Linux Debian Mozilla 1.8.1.13
Salut,
Il faudrait peut être expliqué ce que font les portions de codes avec "sed", tout le monde n'est pas à même de comprendre ces parties là, tu ne crois pas ? Quelques explications seraient donc les bienvenues. Pour les variables VENTE et LOC, ceci devrait faire l'affaire (en adaptant le numéro de ligne) : awk 'NR==1 {print $0}' fichier;-))
JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. |
Comme l'a dit jipicy, quelques explications seraient les bienvenues. Tout le monde n'est pas bilingue sed/awk. Et pour resoudre un probleme, il faut d'abord l'enoncer clairement. |
Poue répondre un peu à ton attente pour la seconde partie du "sed" : [tmpfs]$ cat plop
nombre de vote simple : | 125455
nombre de vote double : | 25645
[tmpfs]$ var=115644
[tmpfs]$ awk -F"|" 'NR==1 {print $1,$2,"(contre '"$var"' en Avril)"}' plop
nombre de vote simple : 125455 (contre 115644 en Avril)
[tmpfs]$;-))
JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|
Désolé, effectivement je vais expliqué ce que fait le script :
VENTE="$(sed -n '1p' ${TMPDIR}/nb_votes_old.lst)" LOC="$(sed -n '2p' ${TMPDIR}/nb_votes_old.lst)" sont les variables qui permettent de recuperer dans le fichier ${TMPDIR}/nb_votes_old.lst le resultat de la ligne 1 et de la ligne 2 grace a SED cat ${TMPDIR}/nb_votes_${DATE}.lst | sed -e "s%|%%g;1 {s%.*%& (contre ${VENTE} en ${DATEOLD})%};2 {s%.*%& (contre ${LOC} en ${DATEOLD})%}" >> ${TMPDIR}/stat_${DATE}.lst permet d'inserer dans le fichier stat le contenu du fichier nb_votes et d'inserer a la fin de la ligne 1 et 2 le contenu des variables VENTE et LOC toujours grace a SED via des expressions regulieres L'accés au savoir est la premiére liberté de l'homme. |
En espérant avoir compris ta demande. A adapter bien sûr... [tmpfs]$ cat toto.tpl
Bonjour,
Voici les résultats du <DATE>
Nombre de votes simple = <RESULT1> contre <VENTE> du <DATEOLD>
Nombre de vote doubles = <RESULT2> contre <LOC> du <DATEOLD>
etc..
[tmpfs]$ cat toto.sh
#! /bin/bash
DATE=$(date '+%A %d %B %Y')
DATEOLD=$(date -d '1 months ago' '+%A %d %B %Y')
# VENTE="$(sed -n '1p' ${TMPDIR}/nb_votes_old.lst)"
VENTE=xxxxx
# LOC="$(sed -n '2p' ${TMPDIR}/nb_votes_old.lst)"
LOC=yyyyy
RESULT1=XXXXX
RESULT2=YYYYY
sed '
s/<DATE>/'"${DATE}"'/
s/<VENTE>/'"${VENTE}"'/
s/<LOC>/'"${LOC}"'/
s/<RESULT1>/'"${RESULT1}"'/
s/<RESULT2>/'"${RESULT2}"'/
s/<DATEOLD>/'"${DATEOLD}"'/
' toto.tpl > fichier_mail.txt
[tmpfs]$ ./toto.sh
[tmpfs]$ cat fichier_mail.txt
Bonjour,
Voici les résultats du mardi 13 mai 2008
Nombre de votes simple = XXXXX contre xxxxx du dimanche 13 avril 2008
Nombre de vote doubles = YYYYY contre yyyyy du dimanche 13 avril 2008
etc..
[tmpfs]$ ;-))
JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|
Pour rappel, le fichier "toto.tpl" est un TEMPLATE, donc il est sensé ne pas être modifié, d'où la redirection dans un fichier.
Mais tu peux très bien faire (et je viens de tester et ça marche très bien) : sed '
s/<DATE>/'"${DATE}"'/
s/<VENTE>/'"${VENTE}"'/
s/<LOC>/'"${LOC}"'/
s/<RESULT1>/'"${RESULT1}"'/
s/<RESULT2>/'"${RESULT2}"'/
s/<DATEOLD>/'"${DATEOLD}"'/
' toto.tpl | mail -s "Envoi du ${DATE}" toto@toto.fr;-))
JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|
Pour reprendre ton script : touch ${TMPDIR}/stat_${DATE}.lst
if [ -f "${TMPDIR}/nb_push_${DATE}.lst" ]
then
NBPUSH=`cat ${TMPDIR}/nb_push_${DATE}.lst`
NBPUSHOLD=`cat ${TMPDIR}/nb_push_old.lst`
mv -f ${TMPDIR}/nb_push_${DATE}.lst ${TMPDIR}/nb_push_old.lst
fi
if [ -f "${TMPDIR}/nb_newsletter_${DATE}.lst" ]
then
NBNEWSLETTER=`cat ${TMPDIR}/nb_newsletter_${DATE}.lst`
NBNEWSLETTEROLD=`cat ${TMPDIR}/nb_newsletter_old.lst`
mv -f ${TMPDIR}/nb_newsletter_${DATE}.lst ${TMPDIR}/nb_newsletter_old.lst
fi
if [ -f "${TMPDIR}/nb_cdc_${DATE}.lst" ]
then
NBCDC=`cat ${TMPDIR}/nb_cdc_${DATE}.lst`
NBCDCOLD=`cat ${TMPDIR}/nb_cdc_old.lst`
mv -f ${TMPDIR}/nb_cdc_${DATE}.lst ${TMPDIR}/nb_cdc_old.lst
fi
if [ -f "${TMPDIR}/nb_${DATE}.lst" ]
then
cat ${TMPDIR}/nb_${DATE}.lst | sed -e 's%|%%g;s%[^[:digit:]]%%g' >> ${TMPDIR}/stat_${DATE}.lst
CONFI="$(sed -n '1p' ${TMPDIR}/stat_${DATE}.lst)"
SIMPL="$(sed -n '2p' ${TMPDIR}/stat_${DATE}.lst)"
CONFIOLD="$(sed -n '1p' ${TMPDIR}/nb_old.lst)"
SIMPLOLD="$(sed -n '2p' ${TMPDIR}/nb_old.lst)"
cat ${TMPDIR}/nb_${DATE}.lst | sed -e 's%[^[:digit:]]%%g' > ${TMPDIR}/nb_old.lst
fi
if [ -f "${TMPDIR}/nb_votes_${DATE}.lst" ]
then
cat ${TMPDIR}/nb_votes_${DATE}.lst | sed -e 's%|%%g;s%[^[:digit:]]%%g' >> ${TMPDIR}/stat_${DATE}.lst
VENTE="$(sed -n '3p' ${TMPDIR}/stat_${DATE}.lst)"
LOC="$(sed -n '4p' ${TMPDIR}/stat_${DATE}.lst)"
VENTEOLD="$(sed -n '1p' ${TMPDIR}/nb_votes_old.lst)"
LOCOLD="$(sed -n '2p' ${TMPDIR}/nb_votes_old.lst)"
cat ${TMPDIR}/nb_votes_${DATE}.lst | sed -e 's%[^[:digit:]]%%g' > ${TMPDIR}/nb_votes_old.lst
fi
sed '
s/<DATE>/'"${DATE}"'/
s/<PUSH>/'"${PUSH}"'/
s/<PUSHOLD>/'"${PUSHOLD}"'/
s/<NBNEWSLETTER>/'"${NBNEWSLETTER}"'/
s/<NBNEWSLETTEROLD>/'"${NBNEWSLETTEROLD}"'/
s/<NBCDC>/'"${NBCDC}"'/
s/<NBCDCOLD>/'"${NBCDCOLD}"'/
s/<VENTE>/'"${VENTE}"'/
s/<LOC>/'"${LOC}"'/
s/<VENTEOLD>/'"${VENTEOLD}"'/
s/<LOCOLD>/'"${LOCOLD}"'/
s/<CONFI>/'"${CONFI}"'/
s/<SIMPL>/'"${SIMPL}"'/
s/<CONFIOLD>/'"${CONFIOLD}"'/
s/<SIMPLOLD>/'"${SIMPLOLD}"'/
s/<DATEOLD>/'"${DATEOLD}"'/
' toto.tpl | mail -s "Envoi du ${DATE}" toto@toto.fr;-))
JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|