Pages : 1
#1 Le 16/01/2011, à 12:02
- Milarespa
[Résolu] tail -f vers awk
Bonjour à tous.
Je cherche à faire fonctionner une commande de ce type:
tail -f -n500 "/chemin/de/mon/fichier" | awk -F";" '{OFS="\t"; print $1, $2, $3}'
Pour lire en temps réel la fin du fichier en question et envoyer le résultat vers awk qui va m'afficher les 3 premiers champs de chaque ligne par le séparateur ";" avec un séparateur "TAB" en sortie.
Petit souci, la commande ne fonctionne pas avec l'option -f de tail, le résultat affiché semble correct mais ne contient pas les quelques dernières lignes du fichier.
Sans le -f, le résultat est correct mais pas en temps réel.
Est-ce que quelqu'un aurait une idée ?
Merci
Dernière modification par Milarespa (Le 16/01/2011, à 13:45)
Hors ligne
#2 Le 16/01/2011, à 12:36
- ssdg
Re : [Résolu] tail -f vers awk
Je n'ai que peu de connaissances en AWK (malgré le fait d'avoir eu à en implémenter une version light en cours),... mais est tu certain qu'il peut travailler en temps réel?
Si ce n'est pas le cas, tu peux toujours chercher du coté de la commande "watch" qui lance régulièrement la commande passée en paramètre
Dernière modification par ssdg (Le 16/01/2011, à 12:37)
s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.
Hors ligne
#3 Le 16/01/2011, à 13:23
- credenhill
Re : [Résolu] tail -f vers awk
hello
que répond awk --version ?
essayer avec l'option -W interactive
Hors ligne
#4 Le 16/01/2011, à 13:44
- Milarespa
Re : [Résolu] tail -f vers awk
Merci à vous deux.
Ca fonctionne avec l'option -W interactive:
$ tail -f -n500 "/chemin/de/mon/fichier" | awk -W interactive -F";" '{OFS="\t"; print $1, $2, $3}'
Etrange car il me semble bien que ça fonctionnait sans cette option avec la version précédente d'ubuntu.
Pourtant la version d'awk date de 96:
$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
compiled limits:
max NF 32767
sprintf buffer 1020
Problème résolu.
Merci encore.
Hors ligne
#5 Le 16/01/2011, à 13:54
- credenhill
Re : [Résolu] tail -f vers awk
Ca dépend si awk est un lien sur mawk. le vieil awk original ou sur gawk, version GNU.
Hors ligne
#6 Le 16/01/2011, à 13:56
- Milarespa
Re : [Résolu] tail -f vers awk
Ok
Hors ligne
#7 Le 16/01/2011, à 13:57
- ehmicky
Re : [Résolu] tail -f vers awk
C'est bizarre que t'aies mawk sous Ubuntu, moi j'ai gawk (Ubuntu 32 10.10)
Edit : grillé
Dernière modification par ehmicky (Le 16/01/2011, à 13:58)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#8 Le 16/01/2011, à 14:13
- Milarespa
Re : [Résolu] tail -f vers awk
C'est bizarre que t'aies mawk sous Ubuntu, moi j'ai gawk (Ubuntu 32 10.10)
J'ai bien mawk sur Ubuntu 10.10 d'origine.
gawk n'est pas installé.
Edit : grillé
Qu'est-ce que tu veux dire ?
Hors ligne
#9 Le 16/01/2011, à 15:02
- ehmicky
Re : [Résolu] tail -f vers awk
J'ai ça :
$ ls -l /usr/bin/{n,m,g,}awk /etc/alternatives/{n,}awk
lrwxrwxrwx 1 root root 13 2010-09-13 23:40 /etc/alternatives/awk -> /usr/bin/gawk
lrwxrwxrwx 1 root root 13 2010-09-13 23:40 /etc/alternatives/nawk -> /usr/bin/gawk
lrwxrwxrwx 1 root root 21 2010-09-13 23:41 /usr/bin/awk -> /etc/alternatives/awk
-rwxr-xr-x 1 root root 0 2011-01-16 15:04 /usr/bin/gawk
-rwxr-xr-x 1 root root 98536 2010-01-14 17:53 /usr/bin/mawk
lrwxrwxrwx 1 root root 22 2010-09-13 23:41 /usr/bin/nawk -> /etc/alternatives/nawk
Dernière modification par ehmicky (Le 16/01/2011, à 15:03)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#10 Le 16/01/2011, à 15:51
- Milarespa
Re : [Résolu] tail -f vers awk
Et moi ça:
$ ls -l /usr/bin/{n,m,g,}awk /etc/alternatives/{n,}awk
ls: ne peut accéder /usr/bin/gawk: Aucun fichier ou dossier de ce type
lrwxrwxrwx 1 root root 13 2010-12-30 15:54 /etc/alternatives/awk -> /usr/bin/mawk
lrwxrwxrwx 1 root root 13 2010-12-30 15:54 /etc/alternatives/nawk -> /usr/bin/mawk
lrwxrwxrwx 1 root root 21 2010-12-30 15:54 /usr/bin/awk -> /etc/alternatives/awk
-rwxr-xr-x 1 root root 97K 2010-01-14 17:53 /usr/bin/mawk
lrwxrwxrwx 1 root root 22 2010-12-30 15:54 /usr/bin/nawk -> /etc/alternatives/nawk
Apres avoir installé gawk j'obtiens ça:
$ ls -l /usr/bin/{n,m,g,}awk /etc/alternatives/{n,}awk
lrwxrwxrwx 1 root root 13 2011-01-16 15:46 /etc/alternatives/awk -> /usr/bin/gawk
lrwxrwxrwx 1 root root 13 2011-01-16 15:46 /etc/alternatives/nawk -> /usr/bin/gawk
lrwxrwxrwx 1 root root 21 2011-01-16 15:46 /usr/bin/awk -> /etc/alternatives/awk
-rwxr-xr-x 1 root root 319K 2010-05-09 16:09 /usr/bin/gawk
-rwxr-xr-x 1 root root 97K 2010-01-14 17:53 /usr/bin/mawk
lrwxrwxrwx 1 root root 22 2011-01-16 15:46 /usr/bin/nawk -> /etc/alternatives/nawk
Du coup, l'option "-W interactive" n'est plus nécessaire dans la commande:
$ tail -f -n500 "/chemin/de/mon/fichier" | awk -F";" '{OFS="\t"; print $1, $2, $3}'
Merci à tous pour votre aide précieuse.
Hors ligne
#11 Le 20/01/2011, à 18:40
- ehmicky
Re : [Résolu] tail -f vers awk
Un lien sur lequel je viens de tomber qui parle justement de ces problèmes de buffering avec tail -f | awk, tail -f | sed, etc.
Dernière modification par ehmicky (Le 20/01/2011, à 18:40)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne