Le mardi 04 octobre 2005 à 18:21 +0200, gmane.linux.debian.user.french a
écrit :
> Bonjour tous
Coucou!
>
> J'ai un petit problme avec un script shell que je suis en train de faire
> ...
>
> En gros ce que je veux faire c'est rcuprer dans les fichiers contenant les
> mail d'un serveur mail ( dans /var/mail/* ) la date du plus ancien message
> dans la boite ...
>
> J'ai donc fait un script qui (idalement) liste les comptes mail et parse
> les lignes contenant "From " pour me donner la date du plus ancien message :
>
> #!/bin/sh
> ls /var/mail/ > liste_comptes
> cat liste_comptes > tmp_compte | head /var/mail/$tmp_compte -n 1 | grep
> "From " |awk '{print $tmp_compte "date : " $5 " " $4 " " $7}' | tee
> liste_mail
>
> le ls liste les boite mails ( ca fonctionne )
> et la commande suivant fonctionne correctement aussi :
> head /var/mail/toto -n 1 | grep "From " |awk '{print "date : " $5 " " $4 "
> " $7}' | tee liste_mail
>
> le seul souci qu'il me reste est de passer la liste des boites mail (
> fichier liste_comptes ) dans ma commande head pour lister tous les comptes
> avec les date des mail ...
si tu "cat" dans un fichier, tu n'as pas de sortie réutilisable
directement. Tu peux pour cela utiliser tee ou bien tout simplement
re-"cat"(t?)er le fichier:
cat tmp_comptes | head [...]
Ne voyant pas bien l'intéret du "cat liste_comptes > tmp_compte | ",
d'ailleurs.
le grep ne sert à rien puisque tu n'affiches que la première ligne, à
moins qu'il y ait des fichiers dont la première ligne ne contient pas
"from" et que tu ne veux pas traiter.
Est-ce que cela convient:
#!/bin/sh
for file in `ls /var/mail/"`; do
head -1 $file | awk '{print $file "date : " $5 " " $4 " " $7}' | tee
liste_mail
done
Si le from n'est pas toujours dans la première ligne, tu remplaces le
head -1 par un grep "From ".
>
> J'espere avoir t clair :-S
J'espère avoir compris
>
> Ma question est assez simple ... comment faire pour faire ma commande head
> sur chaque ligne du fichier liste_comptes
Une commande head sur chaque ligne d'un fichier??? :o man head
>
> En effet jusqu'a prsent mon script me dit "head: /var/mail/: Is a
> directory" ce qui veut dire que mon $tmp_compte est vide
>
> Merci de votre aide
Espérant que ça marche :p
>
> Nico
++ ;)
>
>
>
>
--
-----------------------------------------------------------------------
Ma clé GPG est disponible sur http://www.keyserver.net
-----------------------------------------------------------------------
_____________________________________________________
| Protégez votre vie privée: |
\|||/ | - Signez/chiffrez vos messages. __|
q o - p | Respectez celle des autres: | /
__mn__\_^_/_nm__| - Masquez les destinataires de vos mailings |/
|__________________________________________________/
Attachment:
signature.asc
Description: This is a digitally signed message part