24 lines
1.4 KiB
Text
24 lines
1.4 KiB
Text
|
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.
|