Re: Awk et l'entrée standard
bein y me semble que a part etre un peut plus efficace que awk, le pb de bufferisation de grep va etre le meme. il faut supprimer ce grep du milieu, comme dans mes 2 exemples Le 30/03/2011 09:05, Guillaume Turri a écrit : Bonjour, Le 30 mars 2011 01:56, Alain Vaugham al...@vaugham.com mailto:al...@vaugham.com a écrit : - la sortie que je récupère : monrépertoire/ CREATE fax001 monrépertoire/ CREATE fax002 monrépertoire/ CREATE fax003 monrépertoire/ CREATE fax004 - ce que je veux extraire : la dernière colonne. Je ne connais pas awk, et ne pourrais pas me prononcer sur le sujet. En revanche, pour ce qui est d'extraire la dernière colonne, je pense que l'outils cut est tout indiqué. En particulier, je pense que quelque chose comme ça devrait résoudre cette problématique : inotifywait -m monrépertoire/ | grep CREATE | cut -d -f3 Bonne journée, Guillaume _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux
Re: Awk et l'entrée standard
Salut, Je dirai qu'on peut inverser les strings avec rev, puis faire un cut, puis inverser à nouveau: $ inotifywait -m monrépertoire/ | rev | cut -d -f 1 | rev /JM 2011/3/30 Laurent laur...@hpfrcu08.france.hp.com bein y me semble que a part etre un peut plus efficace que awk, le pb de bufferisation de grep va etre le meme. il faut supprimer ce grep du milieu, comme dans mes 2 exemples Le 30/03/2011 09:05, Guillaume Turri a écrit : Bonjour, Le 30 mars 2011 01:56, Alain Vaugham al...@vaugham.com mailto:al...@vaugham.com a écrit : - la sortie que je récupère : monrépertoire/ CREATE fax001 monrépertoire/ CREATE fax002 monrépertoire/ CREATE fax003 monrépertoire/ CREATE fax004 - ce que je veux extraire : la dernière colonne. Je ne connais pas awk, et ne pourrais pas me prononcer sur le sujet. En revanche, pour ce qui est d'extraire la dernière colonne, je pense que l'outils cut est tout indiqué. En particulier, je pense que quelque chose comme ça devrait résoudre cette problématique : inotifywait -m monrépertoire/ | grep CREATE | cut -d -f3 Bonne journée, Guillaume _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux -- Jean-Marc _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux
Re: Awk et l'entrée standard
Le 30/03/2011 01:56, Alain Vaugham a écrit : 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 En utilisant directement awk pour faire le filtrage : inotifywait -m /home/mro/ | awk '/CREATE/{print $0}' Bonne journée. Marco. _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux
Re: Awk et l'entrée standard
Le 30/03/2011 12:02, Marco RODRIGUES a écrit : Le 30/03/2011 01:56, Alain Vaugham a écrit : 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 En utilisant directement awk pour faire le filtrage : inotifywait -m /home/mro/ | awk '/CREATE/{print $0}' Petite coquille sur la sélection de la colonne : inotifywait -m monrépertoire/ | awk '/CREATE/{print $NF}' N.B. : Je viens de faire des tests supplémentaires en filtrant les OPEN. Ce qui m'étonne c'est que je lance la commande. Et en ouvrant pour la première fois nautilus, je n'ai rien. SI je l'ouvre une seconde fois ou que je rafraichi l'affichage, ça marche. Certainement un problème d'initialisation de l'entrée sortie entre grep et awk. _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux
Re: Awk et l'entrée standard
Le Wednesday 30 March 2011 09:05:49 Guillaume Turri, vous avez écrit : Bonjour, Bonjour, Le 30 mars 2011 01:56, Alain Vaugham al...@vaugham.com a écrit : - la sortie que je récupère : monrépertoire/ CREATE fax001 monrépertoire/ CREATE fax002 monrépertoire/ CREATE fax003 monrépertoire/ CREATE fax004 - ce que je veux extraire : la dernière colonne. Je ne connais pas awk, et ne pourrais pas me prononcer sur le sujet. En revanche, pour ce qui est d'extraire la dernière colonne, je pense que l'outils cut est tout indiqué. En particulier, je pense que quelque chose comme ça devrait résoudre cette problématique : inotifywait -m monrépertoire/ | grep CREATE | cut -d -f3 Non, cut ne coupe rien. Il semble que la ligne soit mise en tampon par grep. Donc cut ne voit rien. Merci pour ce retour. -- Alain Vaugham Clef GPG : 0xD26D18BC _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux
Re: Awk et l'entrée standard
Le Wednesday 30 March 2011 12:16:06 Marco RODRIGUES, vous avez écrit : Le 30/03/2011 12:02, Marco RODRIGUES a écrit : Le 30/03/2011 01:56, Alain Vaugham a écrit : 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 En utilisant directement awk pour faire le filtrage : inotifywait -m /home/mro/ | awk '/CREATE/{print $0}' Petite coquille sur la sélection de la colonne : Pas grave. C'était sûrement pour tout récolter :-) inotifywait -m monrépertoire/ | awk '/CREATE/{print $NF}' Non, cette forme n'alimente pas awk. Ni celle-ci d'aileurs :-) $ inotifywait -m monrépertoire/ | awk ' /CREATE/{ print $NF }' N.B. : Je viens de faire des tests supplémentaires en filtrant les OPEN. Ce qui m'étonne c'est que je lance la commande. Et en ouvrant pour la première fois nautilus, je n'ai rien. Même sans utiliser Nautilus, je n'ai rien non plus SI je l'ouvre une seconde fois ou que je rafraichi l'affichage, ça marche. Certainement un problème d'initialisation de l'entrée sortie entre grep et awk. Je filtre uniquement sur le premier évènement à partir duquel les autres procédures peuvent s'appliquer. Merci pour la tentative de réponse. -- Alain Vaugham Clef GPG : 0xD26D18BC _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux
Re: [Résolu] Awk et l'entrée standard
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. La y a meme pas besoin de passer par un fichier pour remplir la base: par exemple sqlite /tmp/mabase.sql | exec 4p 3p cat 4 /tmp/sqlite.log inotifywait -m monmachin/ | while read a b c do if [ $b = CREATE ] then echo $c echo INSERT INTO matable (fax,date) values (\$c\,DATETIME('NOW')); 3 fi done /tmp/log.log 21 _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux
Re: [Résolu] Awk et l'entrée standard
Le Wednesday 30 March 2011 13:03:22 Laurent, vous avez écrit : ... La y a meme pas besoin de passer par un fichier pour remplir la base: Oui, c'était juste pour valider rapidement le script. ... sqlite /tmp/mabase.sql | C'est Postgres mais je vais m'en inspirer. ... echo INSERT INTO matable (fax,date) values (\$c\,DATETIME('NOW')); 3 Bien que ma machine soit à l'heure avec ntp, je veux aller chercher l'horodatage sur un serveur de temps. Ce sera peut-être l'objet d'une autre discusion mais plus tard car je n'ai pas suffisamment exploré cet aspect. En attendant j'ai de quoi m'occuper. Encore merci beaucoup. -- Alain Vaugham Clef GPG : 0xD26D18BC _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux
Re: [Résolu] Awk et l'entrée standard
Le Wednesday 30 March 2011 14:28:04 Laurent, vous avez écrit : Bien que ma machine soit à l'heure avec ntp, je veux aller chercher l'horodatage sur un serveur de temps. Ce sera peut-être l'objet d'une autre discusion mais plus tard car je n'ai pas suffisamment exploré cet aspect. si le ntpd est fait sur le meme serveur de temps, a quoi sert d'aller chercher un horodatage distant a chaque fax? ntpd calcul les aleas de transmission si le serveur de temps utilise est bien stratum 1 - aller chercher le temps sur le temps de reference a chaque fois introduit plus d'alea que d'utiliser correctement ntpd qui lui va calculer le dephasage/la distance au serveur stratum 1 et la derive propre de l'horloge systeme. Aussi que se passe t'il en case de perte de contact avec le serveur de temps? Oui, tout cela est très bien décrit et je t'en remercie. Mais encore une fois, cela fera éventuellement l'objet d'une autre discussion car je ne suis pas prêt à avancer dessus pour l'instant. -- Alain Vaugham Clef GPG : 0xD26D18BC _ Linux mailing list Linux@lists.parinux.org http://lists.parinux.org/mailman/listinfo/linux