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 |/ |__________________________________________________/
signature.asc
Description: This is a digitally signed message part