Pipe (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ianezz (discussione | contributi)
agg. sez. Note e un paio di riferimenti per Unix
Ianezz (discussione | contributi)
Riga 49:
Nelle ''[[shell (informatica)|shell]]'' testuali di molti sistemi operativi (tra cui i sistemi Unix e Unix-like, MS-DOS e Microsoft Windows) esiste una apposita sintassi per combinare tra loro con una ''pipe'' due programmi semplici, in modo da realizzare una elaborazione complessa in cascata senza l'uso di [[file]] temporanei (e quindi adatta ad esempio a grandi volumi di dati).
 
Il carattere utilizzato nella sintassi (la [[barra verticale]]: <code>|</code>) è detto per l'appunto ''pipe'', e viene inserito tra le invocazioni di due o più programmi per indicare alalla sistema''shell'' che i dati diretti allo ''[[standard output]]'' del programma precedente debbono essere inviati allo ''[[standard input]]'' del programma successivo usando una ''pipe''. Di fatto la ''shell'' provvede a creare le ''pipe'' tramite l'apposita chiamata di sistema, ed in seguito avvia i programmi indicati sostituendo in essi lo ''standard output'' e lo ''standard input'' con i descrittori di file della ''pipe''.
 
Ad esempio, nei sistemi Unix e Unix-like, la linea di comando che segue legge il file <code>file.txt</code> tramite il comando [[cat (Unix)|cat]], che invia i dati al comando [[tr (Unix)|tr]] per sostituire gli spazi ed i segni di punteggiatura con il carattere di ritorno a capo; a sua volta esso passa il risultato al comando [[sort (Unix)|sort]] per ordinare le linee, che lo passa al comando [[uniq]] per scartare le linee duplicate, ottenendo così un elenco ordinato alfabeticamente delle parole contenute nel file: