Une histoire de pipeS

Le problème exposé dans ce sujet a été résolu.

Bonjour,

J'ai souvent ce problème, je crois savoir d'où il vient, mais je n'ai pas d'idée pour le résoudre. Je veux faire des traitements sur un flux, en continue. Peu importe d'où vient le flux, pour l'exemple, je prend dmesg -w qui affiche dmesg en le complétent au fur et à mesure.

Donc basiquement : ache@ache_arch$ dmesg -w | grep net

Là, je détecte tous les modules réseaux. Il me les affiche au fur et à mesure.

Mais si je veux uniquement les usb, je fais : ache@ache_arch$ dmesg -w | grep net | grep usb

Et là, il ne m'affiche plus rien. Alors que je voulais qu'il redirige la sortie de grep net vers l'entrée de grep usb et qu'il m'affiche le résultat au fur et à mesure / en continue.

Je dois avoir un problème de syntaxe, certainement que le chainage ne se fait pas comme je pense. Quelq'un a une idée de comment je peux faire ?

Merci d'avance ^^

PS: Un exemple évident pour mettre en exerge le problème dmesg -w | grep usb vs dmesg -w | grep usb | grep usb

La première affiche bien en continue, la seconde attend que le flux se ferme avant de m'afficher (ce qui n'arrivera pas car dmesg ne se fermera pas tout seul).

+0 -0

Tu as tellement raison que depuis ce matin. Je me renseigne sur awk. Quand j'ai remarqué que c'était le même problème, j'en ai conclu que ça venait des pipes.

Un ami m'a suggéré de mettre des parenthèses pour que le grep usb se fasse bien sur l'ensemble et pas sur dmesg -w. Pas de bol, ça n'a rien changer.

+0 -0

Ah … Ben merci. C'est effectivement ça … Du coup, la pipe chaine bien comme je pense …

Merci beaucoup Ikyushii ! :D

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte