Filter (software)
A filter is a
subroutine to process a stream, producing another stream. While a single filter can be used individually, they are frequently strung together to form a pipeline
.
Some
Automator
, which allows filters (known as "Actions") to be strung together to form a pipeline.
Unix
In
standard error. The command syntax for getting data from a device or file other than standard input is the input operator (
with the pipe operator ("<
). Similarly, to send data to a device or file other than standard output is the output operator (>
). To append data lines to an existing output file, one can use the append operator (>>
). Filters may be strung together into a pipeline|
"). This operator signifies that the main output of the command to the left is passed as main input to the command on the right.
The
Doug McIlroy cites as what "ingrained the tools outlook irrevocably" in the operating system, with later tools imitating it.[1]
grep at its simplest prints any lines containing a character string to its output. The following is an example:
cut -d : -f 1 /etc/passwd | grep foo
This finds all registered users that have "
foo" as part of their username by using the cut
command to take the first field (username) of each line of the Unix system password file and passing them all as input to grep, which searches its input for lines containing the character string "foo" and prints them on its output.
Common Unix filter programs are: cat, cut, grep, head, sort, tail, and uniq. Programs like
Data scientists to get a quick overview about a file based dataset.[2]
List of Unix filter programs
DOS
Two standard filters from the early days of DOS-based computers are find and sort.
Examples:
find "keyword" < inputfilename > outputfilename sort "keyword" < inputfilename > outputfilename find /v "keyword" < inputfilename | sort > outputfilename
Such filters may be used in
batch files
(*.bat, *.cmd etc.).
For use in the same
command shell environment, there are many more filters available than those built into Windows. Some of these are freeware, some shareware and some are commercial programs. A number of these mimic the function and features of the filters in Unix. Some filtering programs have a graphical user interface (GUI) to enable users to design a customized filter to suit their special data processing and/or data mining
requirements.
Windows
Windows Command Prompt inherited MS-DOS commands, improved some and added a few. For example, Windows Server 2003 features six command-line filters for modifying Active Directory that can be chained by piping: DSAdd, DSGet, DSMod, DSMove, DSRm and DSQuery.[3]
Windows PowerShell
adds an entire host of filters known as "cmdlets" which can be chained together with a pipe, except a few simple ones, e.g. Clear-Screen
. The following example gets a list of files in the C:\Windows
folder, gets the size of each and sorts the size in ascending order. It shows how three filters (Get-ChildItem
, ForEach-Object
and Sort-Object
) are chained with pipes.
Get-ChildItem C:\Windows | ForEach-Object { $_.length } | Sort-Object -Ascending
References
- McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986(PDF) (Technical report). CSTR. Bell Labs. 139.
- ^ Data Analysis with the Unix Shell Archived 2016-01-22 at the Wayback Machine - Bernd Zuther, comSysto GmbH, 2013
- ISBN 9780735614376.