Normally, in a pipeline, when you need to edit some phase of the data stream, you use a standard tool such as sed, grep, or awk to alter, filter, or otherwise manipulate the stream. One potential problem with this approach is that the manipulations have to be very well thought out in advance. Another is that the manipulations will probably need to be applied uniformly. And third, the data must be very well understood in advance. Not all situations and data easily conform to these constraints. Alternatively, when the changes needed for the data are more than trivial, or perhaps you just don't feel like expending the mental energy needed to work out all the expressions in advance, a typical approach might be to run some process or pipeline, dump output to a file, edit the file with vi, pico, or emacs, then push the data along to the next phase by using the file as input to some additional process or pipeline. The catch here - other than the sheer awkwardness of this process - is that you have to remember to come back later and clean up all of those little and not-so-little "temporary" files. So, wouldn't you just like to be able to tap in an edit session at any arbitrary point in the pipeline, do your magic on the data, then have it automagically continue on its merry way? The vip program provides this functionality, and operates syntactically just like any other filter.