A program that reads data from standard input, changes it, and writes to standard output, is a filter. "sed" is a filter. "ls" is not.
While many programs are written to act like a filter when they aren't given any file arguments, when a Unix person gives you an exasperated look and says "it's a filter" with that unmistakable tone of "Sheesh, you are an idiot", what they mean is that it is ONLY a filter: it doesn't take command line file arguments and you have to feed its input to it. An example would be SCO's lponlcr, which adds carriage returns to Unix linefeed style line endings. You can only use it in a pipeline; it takes no arguments.
For those of us who love Unix, filters and the fact that so many Unix programs can be used that way are a big part of why we love it, and Windows programs typical inability to grasp that concept is a big part of the disdain we express.
Got something to add? Send me email.
More Articles by Tony Lawrence © 2011-07-05 Tony Lawrence
[This] reminds me of a quotation from somebody that, whenever he tried to explain the logical structure of a programming language to a programmer, it was like a cat trying to explain to a fish what it feels like to be wet. (Saul Gorn)
Printer Friendly Version
filter Copyright © September 2003 Tony Lawrence
Have you tried Searching this site?
This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.
Contact us
Printer Friendly Version