416 links
  • Johndescs's mini-recording
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
  • thumbnail
    Grep and Output Buffering | Jonathan Palardy's Blog

    Ici une explication que j'ai trouvée a posteriori après avoir galéré facile une heure : pourquoi grep semble ne pas fonctionner quand il grep sur quelque chose qui ne termine pas, et dans une autre commande ? Par exemple :
    while true; do echo a; sleep 1; done | grep '' | cat
    => rien
    while true; do echo a; sleep 1; done | grep ''
    => fonctionne
    Dans mon cas c'était inotifywait, grep, while read mais c'est bien pareil.
    La réponse est toute bête mais il fallait y penser (ou lire tout le man de grep, merci ban :)) : buffer sur stdout. grep se fait bufferiser sa sortie, ce qui est tout à fait normal. Il suffirait d'attendre plein d'événements dans le pipe pour les voir arriver. Et le fait d'avoir un terminal au bout masque ça car il bufferise pas plus qu'un ligne.
    Bref, il suffit de dire "--line-buffered" à grep :)

    February 2, 2016 at 15:20:53 GMT+1 - permalink -
    QRCode
    - http://blog.jpalardy.com/posts/grep-and-output-buffering/
    adminsys Linux cli shell
Links per page: 20 50 100
Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community - Help/documentation