Le Wednesday 30 March 2011 09:20:16 Laurent, vous avez écrit : > Un phenomene de bufferisation des stdout.
Effectivement, si dans l'exemple présent ce qui est affiché sur l'écran c'est l'état de remplissage d'un tampon et non le déversement de son contenu sur la ligne standard, je conçois que ma méthode simpliste pour alimenter awk ne convienne pas. > le grep sert a rien aussi > inotifywait -m monmachin/ | awk ' /CREATE/{ print $NF }' Je ne connaissais pas cette syntaxe d'entrée pour awk. J'ai employé grep car ce que je sélectionne c'est l'évènement initial d'un flux. Le flux dans son intégralité c'est la création d'un nouveau fichier, son remplissage avec un contenu binaire, sa journalisation et la transmission du contenu par email. monrépertoire/ CREATE fax0000005 monrépertoire/ OPEN fax0000005 monrépertoire/ MODIFY fax0000005 monrépertoire/ CLOSE_WRITE,CLOSE fax0000005 monrépertoire/ OPEN,ISDIR monrépertoire/ CLOSE_NOWRITE,CLOSE,ISDIR monrépertoire/ OPEN fax0000005 monrépertoire/ ACCESS fax0000005 monrépertoire/ CLOSE_NOWRITE,CLOSE fax0000005 Cette forme n'alimente pas awk : $ inotifywait -m monrépertoire/ | awk ' /CREATE/{ print $NF }' Par contre celle-ci, qui n'utilise ni grep ni awk, extrait bien la dernière colonne : > ou en restant en shell > inotifywait -m monmachin/ | while read a b c > do > if [ "$b" = "CREATE" ] > then > echo $c > fi > done Je peux mettre sa sortie dans un fichier plat donc je vais pouvoir remplir une base de données. > Par contre lequel ne flush pas ses sorties, un petit strace sur l'un ou > l'autre devrait le dire Oui, je vais regarder ce que donne un traçage pour comprendre le mécanisme. > * en fait c'est le grep apparement qui bufferise ses sorties Effectivement. Celui-là, je m'en souviendrai! Merci beaucoup pour ce coup de pouce. -- Alain Vaugham Clef GPG : 0xD26D18BC _________________________________ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux