Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/01/2011, à 13: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, à 14:45)

Hors ligne

#2 Le 16/01/2011, à 13: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, à 13: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, à 14: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, à 14: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, à 14: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, à 14:56

Milarespa

Re : [Résolu] tail -f vers awk

Ok

Hors ligne

#7 Le 16/01/2011, à 14: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) hmm
Edit : grillé

Dernière modification par ehmicky (Le 16/01/2011, à 14: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, à 15:13

Milarespa

Re : [Résolu] tail -f vers awk

ehmicky a écrit :

C'est bizarre que t'aies mawk sous Ubuntu, moi j'ai gawk (Ubuntu 32 10.10) hmm

J'ai bien mawk sur Ubuntu 10.10 d'origine.

gawk n'est pas installé.

ehmicky a écrit :

Edit : grillé

Qu'est-ce que tu veux dire ?

Hors ligne

#9 Le 16/01/2011, à 16: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, à 16: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, à 16: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, à 19: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, à 19: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