Pipeline (software): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Unriccio (discussione | contributi)
m cat, intestazioni
F. Cosoleto (discussione | contributi)
Revisione, ed avviso 'unire'
Riga 1:
{{da unire|pipe}}
In [[informatica]], una '''pipeline''' è un comando di [[shell]] complesso, costituito da un programma che genera un flusso di dati testuali, una sequenza di [[Filtro (Unix)|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#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.
La '''pipeline''' (in inglese, tubo, condotto) è un metodo per trasmettere un flusso di dati da un programma all'altro o fra due processi.
 
A livello utente si incontra nell'uso della [[shell]], dove è spesso conveniente riutilizzare i dati uscenti di un programma come input di un altro, ad esempio per applicare dei [[Filtro (Unix)|filtri]] o per visualizzare e manipolare i risultati in un programma interattivo.
 
In molti sistemi, come i discendenti del [[MS-DOS|Microsoft DOS]] e di [[Unix]], l'operazione via shell è gestita anteponendo fra i programmi una barra verticale ("|").
 
== Pipeline in ambienti [[Unix]] ==
=== Esempi ===
Nei seguenti esempi di riga di comando lo standard output del un programma a sinistra dell'operatore per la pipe è passato allo standard input del programma alla sua destra.
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: