Фільтр — це комп'ютерна програма чи підпрограма обробки потоку, що створює інший потік. У той час як один фільтр може бути використаний індивідуально, вони часто нанизуються один на одного для формування конвеєра.

Деякі операційні системи як Unix багаті на програми-фільтри. Windows 7 та пізніші версії також багаті на фільтри, оскільки вони містять в собі Windows PowerShell. Для порівняння, однак, кілька фільтрів вбудовано в cmd.exe (оригінальний інтерфейс командного рядка у Windows), більшість з яких мають значні удосконалення в порівнянні з подібними командами фільтрів, що були доступні в MS-DOS. OS X включає фільтри з основної бази Unix, але також має і Automator, який дозволяє фільтрам (відомим тут як «Дії») нанизуватися один на одного для формування конвеєру.

Unix В Unix і Unix-подібних операційних системах фільтр являє собою програму, яка отримує більшу частину своїх даних із стандартного введення (головний вхідний потік) і пише свої основні результати в стандартне виведення (головний вихідний потік). Додаткове введення може надійти з параметрів командного рядка чи конфігураційних файлів, в той час як додаткове виведення може піти на стандартне виведення помилок. Синтаксис команди для отримання даних з пристрою чи файлу (а не стандартного введення) — це оператор введення (<). Аналогічно, для надсилання даних на пристрій чи файл (а не на стандартне виведення) — це оператор виведення (>). Для приєднання рядків даних до вихідного файлу, що вже існує, можна використовувати оператор додавання (>>). Фільтри можуть нанизуватись один на одного, формуючи конвеєр, за допомогою оператора конвеєру, так званої «труби» («|»). Цей оператор означає, що основне виведення команди зліва передається як основне введення команді справа.

Філософія Unix закликає об'єднувати меленькі, дискретні інструменти для виконання більших завдань. Класичним фільтром в Unix є grep Кена Томпсона, який Дуглас Макілрой процитував як «інструмент, що безповоротно вкорінений в світогляд» операційної системи, з пізнішими інструментами, що імітують його.McIlroy, M. D. (1987). В найпростішому випадку grep виводить всі рядки, що містять рядок символів на свій потік виведення. Нижче наведено приклад:cut -d : -f 1 /etc/passwd | grep fooЦе дозволить знайти всіх зареєстрованих користувачів, які містять «foo» в своєму імені користувача, використовуючи команду cut, щоб взяти перше поле (ім'я користувача) з кожного рядка в системному файлі паролів Unix і передавши це все як ввід для grep, який шукатиме в цьому вводі рядки, що містять рядок символів «foo» і передасть це на вивід.

Загальні програми-фільтри в Unix: cat, cut, grep, head, sort, uniq і tail. Програми на кшталт awk та sed можуть бути використані для створення досить складних фільтрів, тому що вони є повністю програмованими. Фільтри Unix можуть також використовуватися фахівцями, що представляють науку про дані для проведення швидкого огляду файлового набору даних.Data Analysis with the Unix Shell  — Bernd Zuther, comSysto GmbH, 2013

Список програм-фільтрів в Unix

awk cat comm cut

grep head less more

perl

sed sh sort split strings tail tac tee tr uniq wc zcat

DOS На комп'ютерах, що базуються на операційній системі MS-DOS, з ранніх днів двома стандартними фільтрами є find та sort.

Приклади: find "ключове_слово" < вхідний_файл > вихідний_файл sort "ключове_слово" < вхідний_файл > вихідний файл find /v "ключове_слово < вхідний_файл | sort > вихідний_файл Такі фільтри можна використовувати в пакетних файлах (*.bat, *.cmd тощо).

Для використання в тій же самій оболонці операційної системи доступно це багато фільтрів окрім тих, що вбудовані в Windows. Деякі з них є безкоштовними, деякі умовно-безкоштовними, а деякі є комерційними програмами. Багато з них імітують функції і особливості Unix-фільтрів. Деякі програми-фільтри мають графічний інтерфейс (GUI), що дозволяє користувачами створювати індивідуальні фільтри, які підходять для їхньої спеціальної обробки даних  та/або добування даних.

Windows Командний рядок Windows успадкував команди MS-DOS, деякі поліпшив і кілька додав. Наприклад, Windows Server 2003 має шість консольних програм-фільтрів для модифікування Active Directory, які можуть з'єднуватись за допомогою конвеєра: DSAdd, DSGet, DSMod, DSMove, DSRm and DSQuery.

Windows PowerShell додає весь набір фільтрів, відомих як «командлети» які можуть бути з'єднані між собою через конвеєр, окрім кількох простих, наприклад Clear-Screen. Наведений приклад отримає список файлів в папці C:\Windows, отримає розмір кожного і відсортує за розміром в порядку зменшення. Це показує, як три фільтри (Get-ChildItem, ForEach-Object та Sort-Object) з'єднуються через конвеєр. Get-ChildItem C:\Windows | ForEach-Object { $_.length } | Sort-Object -Descending

Виноски

Див. також http://www.webopedia.com/TERM/f/filter.html