Фильтр (программное обеспечение)
Фильтр — это компьютерная программа или подпрограмма для обработки потока , создающая другой поток. Хотя один фильтр можно использовать индивидуально, их часто объединяют в конвейер .
Некоторые операционные системы , такие как Unix, богаты программами-фильтрами. Windows 7 и более поздние версии также богаты фильтрами, поскольку включают в себя Windows PowerShell . Windows) встроено немного фильтров Однако для сравнения, в cmd.exe (исходный интерфейс командной строки , большинство из которых имеют значительные улучшения по сравнению с аналогичными командами фильтров, которые были доступны в MS-DOS . OS X включает в себя фильтры из базовой базы Unix, но также имеет Automator , который позволяет объединять фильтры (известные как «Действия») для формирования конвейера.
Юникс
[ редактировать ]В Unix и Unix-подобных операционных системах фильтр — это программа, которая получает большую часть своих данных со стандартного ввода (основной поток ввода) и записывает основные результаты в свой стандартный вывод (основной поток вывода). Вспомогательный ввод может поступать из флагов командной строки или файлов конфигурации, а вспомогательный вывод может поступать в виде стандартных ошибок . Синтаксисом команды для получения данных из устройства или файла, отличного от стандартного ввода, является оператор ввода ( <
). Аналогично, для отправки данных на устройство или файл, отличный от стандартного вывода, используется оператор вывода ( >
). Чтобы добавить строки данных в существующий выходной файл, можно использовать оператор добавления ( >>
). Фильтры могут быть объединены в трубопровод совместно с оператором трубопровода (« |
"). Этот оператор означает, что основной вывод команды слева передается в качестве основного ввода команды справа.
Философия Unix поощряет объединение небольших отдельных инструментов для выполнения более крупных задач. Классический фильтр в Unix — Кена Томпсона . фильтр grep , который, по словам Дуга Макилроя , «безвозвратно укоренил внешний вид инструментов» в операционной системе, а более поздние инструменты имитировали его. [1] В самом простом случае grep выводит на вывод любые строки, содержащие строку символов. Ниже приведен пример:
cut -d : -f 1 /etc/passwd | grep foo
Это позволяет найти всех зарегистрированных пользователей, у которых есть " foo " как часть их имени пользователя, с помощью команды Cut , которая берет первое поле (имя пользователя) каждой строки файла системных паролей Unix и передает их все в качестве входных данных для grep, который выполняет поиск по входным данным. для строк, содержащих строку символов «foo», и печатает их на выходе.
Распространенными программами-фильтрами Unix являются: cat , Cut , grep , head , sort , Tail и uniq . Такие программы, как awk и sed, можно использовать для создания довольно сложных фильтров, поскольку они полностью программируются. Фильтры Unix также могут использоваться специалистами по обработке данных для получения быстрого обзора набора данных на основе файлов. [2]
Список программ-фильтров Unix
[ редактировать ]ПРИНАДЛЕЖАЩИЙ
[ редактировать ]Два стандартных фильтра первых дней существования компьютеров под управлением DOS — это find и sort .
Примеры:
find "keyword" < inputfilename > outputfilename sort "keyword" < inputfilename > outputfilename find /v "keyword" < inputfilename | sort > outputfilename
Такие фильтры можно использовать в пакетных файлах (*.bat, *.cmd и т.п.).
Для использования в той же среде командной оболочки доступно гораздо больше фильтров, чем встроенных в Windows. Некоторые из них являются бесплатными , некоторые условно-бесплатными , а некоторые являются коммерческими программами. Некоторые из них имитируют функции и особенности фильтров в Unix. Некоторые программы фильтрации имеют графический пользовательский интерфейс (GUI), позволяющий пользователям создавать индивидуальные фильтры в соответствии со своими особыми требованиями к обработке и/или интеллектуальному анализу данных .
Окна
[ редактировать ]Командная строка Windows унаследовала команды MS-DOS, некоторые улучшила и добавила несколько. Например, в Windows Server 2003 имеется шесть фильтров командной строки для изменения Active Directory , которые можно объединить по конвейеру: DSAdd, DSGet, DSMod, DSMove, DSRm и DSQuery. [3]
Windows PowerShell добавляет целый набор фильтров, известных как «командлеты», которые можно объединить в цепочку с помощью канала, за исключением нескольких простых, например Clear-Screen
. В следующем примере возвращается список файлов в папке C:\Windows
папку, получает размер каждой папки и сортирует ее по возрастанию. Он показывает, как три фильтра ( Get-ChildItem
, ForEach-Object
и Sort-Object
) скованы трубами.
Get-ChildItem C:\Windows | ForEach-Object { $_.length } | Sort-Object -Ascending
Ссылки
[ редактировать ]- ^ Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Лаборатории Белла. 139.
- ^ Анализ данных с помощью Unix Shell. Архивировано 22 января 2016 г. на Wayback Machine - Бернд Цутер, comSysto GmbH, 2013 г.
- ^ Холм, Дэн; Томас, Орин (2004). Управление и поддержка среды Microsoft Windows Server 2003: экзамен 70-290 . Редмонд, Вашингтон : Microsoft Press . стр. 3|17—3|26 . ISBN 9780735614376 .