Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Here to plug using `--passthru`/`--passthrough`: it will print all lines, but highlight matches. I often do things like this to watch an output log, but highlight all entries with the string PLUGH in them:

   tail -F output.log | ag --passthrough '.*PLUGH.*'


You can achieve that in almost any of these tools (including old-school grep) by matching against something with zero width, like this:

  grep '^|.*PLUGH.*'


You could do that.

Or you could just use --passthrough. It's easy to remember, easy to type, it autocompletes, it doesn't interfere with your criteria.


I wondered what that option could be useful for, thanks!


The equivalent in grep is '--line-buffered'.


That's an orthogonal feature, it writes output after each line as opposed to every 4096 bytes, when the output is a pipe instead of a terminal. Useful when the other end of the pipe still goes to the terminal and you want to see it immediately. If `some-util-with-output` echoes stdin then without the option the following would not show you the latest grepped lines until the 4096 buffer fills.

  tail -F output.log | grep --line-buffered TEXT | some-util-with-output


huh?


I mean you can use grep as a filter for tail -f output.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: