I realise the point is to show sometimes vim is inappropriate. However, the commands given in the first one are long-winded and not equivalent, I'm not sure the readers who stand to gain from the article will notice this. As I wrote elsewhere...<p>Having done :v/tcp/d there's no need to match again with :g/tcp/s... since :%s... will do, besides :g//s... would have done. Also, :g/tcp/s/\S\+\s\+\(\S\+\)\s.*/\1/ mandates a whitespace after the second word so it's not equivalent to the given :%!awk '/tcp/ {print $2}'.