Nei sistemi operativi POSIX (Unix e Unix-like) un filtro è un programma che prende i dati dallo standard input e scrive il risultato sullo standard output. I filtri Unix sono spesso usati come componenti di una pipeline software, collegati dall'operatore pipe ("|"), che in una riga di comando significa che lo standard output del programma a sinistra dell'operatore è passato allo standard input del programma alla sua destra.

Visto il successo dell'uso dei filtri in ambienti Unix, anche altri sistemi operativi li hanno adottati: MS-DOS OS/2 Microsoft Windows Tuttavia, in tali sistemi operativi, i filtri sono molto meno usati che in Unix, e molti utenti non sanno nemmeno che esistono.

Filtri che operano su input di tipo testo

Molti filtri sono usati per manipolare il testo e molti di questi applicano le proprie regole riga per riga, ecco alcuni tra quelli più comunemente usati:

cut - estrae parti di ogni riga grep - estrae le linee che contengono certe parole e/o che rispondono a certe caratteristiche (vedi espressioni regolari) head - riporta soltanto le prime righe tail - riporta soltanto le ultime righe sort - ordina le righe (quindi restituisce tutto l'input, dopo averlo ordinato) uniq - elimina le righe ripetute (spesso usato insieme a sort) comm expand fold - spezza su più righe in output le righe in input troppo lunghe nl - numera le linee paste pr split tee tr wc xargs awk e sed - questi possono essere usati per costruire filtri abbastanza complicati, perché sono in realtà degli interpreti di programmi (script) scritti in un linguaggio pensato espressamente per la manipolazione dei file di testo.

Per operazioni ancora più elaborate possono essere usati anche linguaggi di scripting come perl, php, python o shell programming come sh e bash, ma in questi casi la funzionalità di filtro non è quella principale del programma.

Filtri che operano su altri formati di input (binari)

compressione e decompressione file: gzip/gunzip, compress/uncompress, bzip2/bunzip2 strings - estrazione di stringhe da file binari I programmi di manipolazione immagini della suite netpbm la suite flow-tools per la gestione delle registrazioni netflow

Voci correlate shell pipe (informatica) Pipeline (Unix)

Collegamenti esterni https://web.archive.org/web/20050411210509/http://wiki.debian.net/index.cgi?filter

Categoria:Sistemi POSIX