Un phenomene de bufferisation des stdout.
le grep sert a rien aussi
inotifywait -m monmachin/ | awk ' /CREATE/{ print $NF }'
ou en restant en shell
inotifywait -m monmachin/ | while read a b c
do
if [ "$b" = "CREATE" ]
then
echo $c
fi
done
Par contre lequel ne flush pas ses sorties, un petit strace sur l'un ou
l'autre devrait le dire
* en fait c'est le grep apparement qui bufferise ses sorties
Le 30/03/2011 01:56, Alain Vaugham a écrit :
Bonsoir la liste,
Je ne suis plus sûr d'avoir compris la notion d'entrée standard pour awk.
En effet, dans un cas particulier, je n'arrive pas à faire dire à awk qu'il
écrive soit sur la ligne courante, soit dans une base de données.
- le flux que je surveille :
$ inotifywait -m monrépertoire/ | grep CREATE
- la sortie que je récupère :
monrépertoire/ CREATE fax0000001
monrépertoire/ CREATE fax0000002
monrépertoire/ CREATE fax0000003
monrépertoire/ CREATE fax0000004
- ce que je veux extraire : la dernière colonne.
Voici mon utilisation de awk qui ne retourne rien :
$ inotifywait -m monrépertoire/ | grep CREATE | awk '{ print $NF }'
Selon mon diagnostique, awk semble ne pas être alimenté par le canal de
l'entrée standard via le tube de grep que je lui fourni en entrée.
Où se trouve mon erreur pour alimenter awk?
Les tutos dont je m'inspire :
http://www.gnu.org/software/gawk/manual/gawk.html#Special-Files
http://www.shellunix.com/awk.html
http://bruno-garcia.net/www/Unix/Docs/awk.html
Merci d'avance pour un coup de pouce.
_________________________________
Linux mailing list
Linux@lists.parinux.org
http://lists.parinux.org/mailman/listinfo/linux