stringtranslate.com

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

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

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

Unix

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

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

вырезать  -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 .

Примеры:

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

Такие фильтры могут использоваться в пакетных файлах (*.bat, *.cmd и т.д.).

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

Окна

Windows Command Prompt унаследовала команды 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  }  |  Сортировка-Object  -Ascending

Ссылки

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

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