Filtro (Unix): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Hce (discussione | contributi)
-da unire, parte del materiale da pipe e da shell, risistemata lista
Hce (discussione | contributi)
Nessun oggetto della modifica
Riga 1:
Nei sistemi operativi [[Unix|UNIX]] e [[Unix-like]] un '''filtro''' è un programma che prende i dati dallo [[standard input]] e scrive il risultato su [[standard output]]. I filtri UNIX sono spesso usati come componenti di una [[pipeline (Unix)|pipeline]]., Lcollegati dall'operatore [[pipe#Funzione pipe nella Shell|pipe]] ("|"), che in una riga di comando sigifica che lo standard output del un programma a sinistra dell'operatore è passato allo standard input del programma alla sua destra.
 
===filtri comuni===
Il filtro più noto è [[grep]], che nel caso più semplice stampa in output tuttle le linee contenenti una certa stringa. Ad esempio
 
Alcuni programmi dicomunemente filtraggiousati come filtro sono:
cut -d : -f 1 </etc/passwd | grep foo
 
trova tutti gli utenti in ''/etc/passwd'' che hanno la stringa ''"foo"'' all'interno del loro nome. Il comando ''cut'' prende il primo campo di ciascuna linea dal file ''/etc/passwd'' e la pipe passa l'output a ''grep'', che cerca le linee contenenti ''"foo"'' e le stampa su standard output.
 
Esempio di pipeline, che visualizza sulla console i numeri da 1 a 13:
 
while : ; do echo ; done | head -n 13 | nl -ba
 
Spesso i software di filtro o di compressione costituiscono gli elementi successivi al primo in una pipeline.
 
Alcuni programmi di filtraggio sono:
 
* [[cut]] (seleziona parti di ogni riga)
Line 35 ⟶ 25:
*[[gzip]]/[[gunzip]], [[compress]]/[[uncompress]], [[bzip2]]/[[bunzip2]]
*i programmi di manipolazione immagini della suite [[netpbm]]
*[[more]] e [[less]] (paginatori, permettono di leggere un file o un flusso di dati una pagina alla volta)
 
Programmi che vengono spesso utilizzati per creare il flusso di dati da inviare ad una pipeline:
* [[find]] (individua i file con certe caratteristiche)
* [[xargs]] (trasforma un flusso di dati in argomenti sulla riga di comando)
* [[cat]] (legge un file o un dispositivo)
* [[tail]] -f (legge le righe che vengono aggiunte ad un file)
 
==Voci correlate==
* [[shell]]
* [[pipe]]
* [[Pipeline (Unix)]]
 
==Collegamenti esterni==