Из Википедии, бесплатной энциклопедии
  (Перенаправлено из Filter (Unix) )
Перейти к навигации Перейти к поиску

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

Некоторые операционные системы, такие как 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 , uniq и tail . Такие программы, как awk и sed, можно использовать для создания довольно сложных фильтров, поскольку они полностью программируемы. Фильтры Unix также могут использоваться специалистами по обработке данных, чтобы получить быстрый обзор набора данных на основе файлов. [2]

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

  • awk
  • Кот
  • комм
  • резать
  • расширять
  • компресс
  • складывать
  • grep
  • глава
  • меньше
  • более
  • нл
  • Perl
  • вставить
  • пр
  • sed
  • ш
  • Сортировать
  • расколоть
  • струны
  • хвост
  • такс
  • тройник
  • tr
  • уникальный
  • Туалет
  • zcat

DOS [ править ]

Два стандартных фильтра с первых дней появления компьютеров на базе DOS - это поиск и сортировка .

Примеры:

find "ключевое слово" < inputfilename > outputfilename
sort "keyword" < inputfilename > outputfilename
find / v "ключевое слово" < inputfilename | sort> outputfilename

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

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

Windows [ править ]

Командная строка 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. Перейти ↑ McIlroy, MD (1987). Читатель Research Unix: аннотированные выдержки из Руководства программиста, 1971–1986 (PDF) (технический отчет). CSTR. Bell Labs. 139. CS1 maint: обескураженный параметр ( ссылка )
  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.

Внешние ссылки [ править ]

  • http://www.webopedia.com/TERM/f/filter.html