Wednesday, December 14, 2011


Discovered 'moreutils' package in Ubuntu. It features a list of nice tools, of which my favorite are 'ts', 'pee' and 'vipe'.

'ts' puts timestamps to every line of text that is piped through it. Like,

$ ping|ts
Dec 14 14:18:45 PING ( 56(84) bytes of data.
Dec 14 14:18:45 64 bytes from ( icmp_seq=1 ttl=52 time=88.5 ms
Dec 14 14:18:46 64 bytes from ( icmp_seq=2 ttl=52 time=92.5 ms
Dec 14 14:18:47 64 bytes from ( icmp_seq=3 ttl=52 time=90.5 ms

I love timestamps! I put them everywhere I can, it helps so much to find out later what was going on. 'ts' will certainly help me.

Another tool is 'pee'. As 'man pee' puts it, it's like 'tee', but for pipes. 'pee' reads standard input and sends it to a number of commands supplied as arguments to 'pee'. Like,

$ cat file.txt |pee 'wc -c' 'wc -w' 'wc -l'

And, finally, 'vipe' — it's a way to edit data produced by one program before they are piped into another one. 'sed' is good enough, but when some interactivity is needed, 'vipe' should be handy.