Pipeline (software)

insieme di componenti software collegati tra loro in cascata
Versione del 1 ago 2005 alle 10:48 di Hce (discussione | contributi) (materiale da filtro (unix))
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

In informatica, una pipeline è un comando di shell complesso, costituito da un programma che genera un flusso di dati testuali, una sequenza di filtri che manipolano questo flusso di dati, ed eventualmente un programma che gestisce il risultato. Questi programmi sono collegati tra loro tramite l'operatore 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.

esempi

Un filtro tra i più noti è grep, che nel caso più semplice stampa in output tuttle le linee contenenti una certa stringa. Ad esempio

 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.

Un altro esempio di pipeline, che visualizza sulla console i numeri da 1 a 13:

while : ; do echo ; done | head -n 13 | nl -ba

Spesso i filtri costituiscono gli elementi successivi al primo in una pipeline.

inizio della pipeline

Programmi che vengono spesso utilizzati per creare il flusso di dati da inviare ad una pipeline:

  • find (individua i file con certe caratteristiche)
  • cat (legge un file o un dispositivo)
  • tail -f (legge le righe che vengono aggiunte ad un file)

fine della pipeline

Una pipeline termina stampando il risultato sul terminale, redirigendolo su un file, con un pager come more o less, che permettono di leggere un file o un flusso di dati una pagina alla volta, o anche con xargs, che trasforma un flusso di dati in argomenti sulla riga di comando

Voci correlate