GNU/Linux: concatenazione dell’output dei comandi

Oggi, come promesso, vediamo un’altra comodissima caratteristica della shell di Linux: la concatenazione dei comandi, cioè le pipe.

Il punto di partenza

Abbiamo già visto l’uso del comando cat per ottenere il contenuto di un file di testo. Cat password.txt mi dà l’output del nostro caro vecchio file delle password (se non lo avete, lo creiamo nella puntata sulla redirezione):

cat password.txt

Concatenare due comandi

Se voglio che questo contenuto, cioè l’output di cat, venga dato in pasto a un altro comando, uso l’operatore pipe, il carattere |. Mettiamo di voler ordinare alfabeticamente le righe: serve sort, che legge l’input e restituisce le righe ordinate. L’input di sort deve diventare l’output di cat:

cat password.txt | sort

Ed ecco la magia: l’output di cat, filtrato da sort, adesso è ordinato alfabeticamente. Concatenare i comandi è semplicissimo.

Concatenare più comandi

Si possono concatenare anche più di due comandi. Se voglio solo le prime righe, in ordine alfabetico, del contenuto del file, aggiungo head, che con l’opzione -n prende le prime N righe. Quindi cat legge il file, sort lo ordina, e head prende le prime cinque righe:

cat password.txt | sort | head -n 5

Il risultato sono le prime cinque righe del file, in ordine alfabetico. (Nel video a voce dico “quattro”, ma il comando dice cinque: se ne volete quattro, scrivete head -n 4.)

Conclusione

La concatenazione si può complicare molto: è uno strumento potentissimo. Per ora abbiamo visto le basi con cat, sort e head, che ci serviranno per capire righe di comando molto più complesse. Nelle prossime puntate continueremo a usare le pipe per cose sempre più interessanti.

Link e risorse

Sostieni il canale

PER SOSTENERE IL CANALE BASTANO UN LIKE E UN’ISCRIZIONE!

questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!