stringtranslate.com

Фильтр (программное обеспечение)

Фильтр — это компьютерная программа или подпрограмма для обработки потока , создающая другой поток . Хотя один фильтр можно использовать по отдельности, их часто объединяют в конвейер .

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

Юникс

В Unix и Unix-подобных операционных системах фильтр — это программа, которая получает большую часть своих данных со стандартного ввода (основной поток ввода) и записывает основные результаты в свой стандартный вывод (основной поток вывода). Вспомогательный ввод может поступать из флагов командной строки или файлов конфигурации, а вспомогательный вывод может поступать в виде стандартных ошибок . Синтаксисом команды для получения данных из устройства или файла, отличного от стандартного ввода, является оператор ввода ( <). Аналогично, для отправки данных на устройство или в файл, отличный от стандартного вывода, используется оператор вывода ( >). Чтобы добавить строки данных в существующий выходной файл, можно использовать оператор добавления ( >>). Фильтры могут быть объединены в трубопровод с помощью оператора трубопровода (" |"). Этот оператор означает, что основной вывод команды слева передается в качестве основного ввода команды справа.

Философия Unix поощряет объединение небольших отдельных инструментов для выполнения более крупных задач. Классическим фильтром в Unix является grep Кена Томпсона , который, по словам Дуга Макилроя, «безвозвратно укоренил внешний вид инструментов» в операционной системе, а более поздние инструменты имитируют его. [1] grep в самом простом виде выводит на вывод любые строки, содержащие строку символов. Ниже приведен пример:

вырезать  -d  :  -f 1 /etc/passwd | греп фу     

Это позволяет найти всех зарегистрированных пользователей, у которых есть " foo " как часть их имени пользователя, используя команду Cut , которая берет первое поле (имя пользователя) каждой строки файла системных паролей Unix и передает их все в качестве входных данных для grep, который выполняет поиск по входным данным. для строк, содержащих строку символов «foo», и печатает их на выходе.

Распространенными программами-фильтрами Unix являются: cat , Cut , grep , head , sort , Tail и uniq . Такие программы, как awk и sed, можно использовать для создания довольно сложных фильтров, поскольку они полностью программируются. Фильтры Unix также могут использоваться специалистами по обработке данных для получения быстрого обзора набора данных на основе файлов. [2]

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

ДОС

Два стандартных фильтра первых дней существования компьютеров под управлением DOS — это find и sort .

Примеры:

find "ключевое слово" < имя входного файла > имя выходного файла
sort "ключевое слово" < имя входного файла > имя выходного файла
find /v "ключевое слово" < имя входного файла | сортировка > имя выходного файла

Такие фильтры можно использовать в пакетных файлах (*.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  {  $_ . длина  }  |  Сортировка-Объект-  По возрастанию

Рекомендации

  1. ^ Макилрой, доктор медицины (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (Технический отчет). CSTR. Лаборатории Белла. 139.
  2. ^ Анализ данных с помощью Unix Shell. Архивировано 22 января 2016 г. на Wayback Machine - Бернд Цутер, comSysto GmbH, 2013 г.
  3. ^ Холм, Дэн; Томас, Орин (2004). Управление и поддержка среды Microsoft Windows Server 2003: экзамен 70-290. Редмонд, Вашингтон : Microsoft Press . стр. 3|17—3|26. ISBN 9780735614376.

Внешние ссылки