Szűrő (programozás)

A szűrő számítógépes program vagy szubrutin, ami feldolgoz egy adatfolyamot, és egy másik adatfolyamot bocsát ki. Használható külön is, de össze is kapcsolhatók csövekkel.

A különböző operációs rendszerek különböző számú és típusú szűrőt biztosítottak. Az MS-DOS viszonylag keveset tartalmazott, szemben az akkori Unixszal. A lista a Windowsban bővült, a cmd.exe új képességekkel ruházta fel az MS-DOS-ból ismert régi szűrőket. A Windows 7 bevezette a Powershellt, ami már gazdagon el van látva szűrőkkel. A Unixokra továbbra is jellemző a sok szűrő. Az OS X-ben az Automatorral kapcsolhatók össze a szűrők csővezetékké.

Unix szerkesztés

Unixokon és Unix alapú operációs rendszereken a szűrők elsődlegesen a szabványos bemenetükről olvasnak és a szabványos kimenetükre írnak. Másodlagos bemenetként olvashat fájlból és másodlagos kimenetként írhat a szabványos hibacsatornára. Mindezek átirányíthatók, a szabványos bemenet átirányításának jele a < bemeneti operátor; a szabványos kimenet átirányítására felülíró módban a >, hozzáfűző módban a >> szolgál. A szabványos hibacsatorna a 2> és a 2>> operátorokkal irányítható át. A szűrők a („|”) cső operátorral kapcsolhatók össze csővezetékké.

A Unix egyik alapelve bátorítja, hogy kisebb, különálló eszközök kombinálásával nagyobb egységeket hozzanak létre, amelyek bonyolult feladatokat tudnak elvégezni. Klasszikus a Ken Thompson által írt grep, amit Doug McIlroy úgy jellemzett, mint ami visszavonhatatlanul meggyökeresedett a Unix szemléletében, annyira, hogy későbbi eszközök utánozták.[1] A grep azokat a sorokat keresi, ahol a keresett kifejezés megtalálható. Egy példa:

cut -d : -f 1 /etc/passwd | grep foo

Ez megtalálja azokat a regisztrált felhasználókat, akiknek felhasználóneve tartalmazza a foo szöveget. A cut utasítás veszi a Unix rendszer password fájljának első oszlopát, majd ezt átadja a grepnek bemenetként, ami megkeresi az összes sorban a foo szöveget, és kiírja az eredményt.

Unixon a leggyakrabban használt szűrők: cat, cut, grep, head, sort, uniq, és tail. Programok, mint awk és sed is használhatók összetett programok írására, mivel sokféleképpen paraméterezhetők. Unix szűrőkkel kutatók is nyerhetnek gyors áttekintést kapjanak egy fájl alapú adathalmazról.[2]

Unix szűrők listája szerkesztés

DOS szerkesztés

A DOS korai időszakának két szűrője a find és a sort. Példák:

find "kulcsszó" < bemenetifájl > kimenetifájl
sort "kulcsszó" < bemenetifájl > kimenetifájl
find /v "kulcsszó" < bemenetifájl | sort > kimenetifájl

Ezeket a szűrőket batch fájlok írására is lehetett használni.

Parancshéj környezetben további szűrőket is lehetett használni. Ezek egy része ingyenes, más része ideiglenesen ingyenes, harmadik része kereskedelmi volt. Ezek közül több a Unix szűrőit utánozta. Ezek egy része ablakozó környezettel is bírt, hogy kényelmesebben lehessen különböző paramétereket megadni, hogy megfelelően feldolgozhassa az adatait.

Windows szerkesztés

A Windows parancssor örökölte az MS-DOS programjait, egyeseket kibővítve, és újabb szűrőket is bevezettek. Például a Windows Server 2003 hat parancssori szűrőt tartalmaz az Active Directory módosítására, amelyek csövekkel összeköthetők: DSAdd, DSGet, DSMod, DSMove, DSRm és DSQuery.[3]

A Windows PowerShell egy teljes szűrőcsaládot (cmdlets) bocsát a felhasználó rendelkezésére, amelyek csövekkel összeköthetők, kivéve néhány egyszerűt, mint például Clear-Screen. A példa megszerzi a C:\Windows bejegyzéseit, mindegyiknek megtudja a méretét, és növekvő sorrendben rendezi.

Get-ChildItem C:\Windows | ForEach-Object { $_.length } | Sort-Object -Ascending

Jegyzetek szerkesztés

  1. A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986, CSTR (1987) 
  2. Data Analysis with the Unix Shell Archiválva 2016. január 22-i dátummal a Wayback Machine-ben - Bernd Zuther, comSysto GmbH, 2013
  3. Managing and maintaining a Microsoft Windows Server 2003 environment : exam 70-290. Redmond, WA: Microsoft Press, 3|17—3|26. o. (2004. április 21.). ISBN 9780735614376 

Források szerkesztés

Fordítás szerkesztés

Ez a szócikk részben vagy egészben a Filter (software) című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.