Redirezione nel terminale – Parte 2: i filtri
Nella scorsa puntata abbiamo introdotto l’interessante argomento della redirezione nel terminale Linux, un aspetto importantissimo per tutti coloro che intendono massimizzare l’esperienza d’uso di questo potente strumento e che, perché no, hanno intenzione di intraprendere la strada dei programmatori/debugger in un prossimo futuro.
Dopo aver dato i cenni basi ed analizzato il comportamento degli operatori angolari e dell’operatore di redirezione doppia, il pipe, oggi andremo a trattare un argomento strettamente utile a quest’ultimo: quello dei filtri. Tramite essi è possibile alterare l’output di qualsiasi comando, cosa che in molteplici occasioni può tornare particolarmente utile.
Redirezione nel terminale: Parte 1 – Angolari e pipe
Redirezione nel terminale: Parte 2 – I filtri (vi trovate qui)
Redirezione nel terminale: Parte 3 – File descriptor, standard error ed operazioni complesse (prossimamente)
Redirezione nel terminale – I filtri
Un filtro si specifica immediatamente dopo il pipe (se si intende lavorare sullo standard output, ci ritorneremo nella prossima puntata) ed è possibile usare gli operatori di redirezione per trasferire il suo output in un ulteriore file.
In realtà ciascun filtro è esso stesso un comando bash che, di norma, prende in input un file (o lo standard input, come vedremo in seguito). Ciascun filtro può prevedere anche l’inserimento di parametri che ne alterano il comportamento predefinito: per conoscerli vi consigliamo di consultare la pagina di manuale relativa ad ognuno di essi. Diamo un’occhiata ai filtri più importanti:
sort: è in grado di ordinare e mostrare lo stream di dati passato come input; ad esempio, il comando
cat file_a | sort -n > file_b
E’ in grado di trasferire in file_b numeri presenti in file_a, ordinandoli in modo decrescente.
uniq: spesso usato con sort, è in grado di eliminare le righe uguali dallo stream di dati passato come input.
grep: già visto ed usato numerose volte, permette di prelevare da uno stream di dati la riga (o le righe) contenente una determinata combinazione di caratteri (specificata come primo parametro) e mostrarla in output.
fmt: legge del testo da uno stream di dati in input ed è in grado di mostrarlo formattato in output.
pr: altro filtro per la formattazione, è in grado di leggere uno stream di dati in input e mostrarlo suddiviso in pagine con intestazioni e pie’ di pagina; in pratica pr va a formattare l’input in modo printer-friendly.
head: mostra in output le prime righe (numero personalizzabile tramite parametri, il predefinito è 10) dello stream di dati in input.
tail: mostra in output le ultime righe (numero personalizzabile tramite parametri, il predefinito è 10) dello stream di dati in input.
tr: trasforma – o, letteralmente, traduce – parti di testo dallo stream di dati passato in input e mostra il risultato in output. Ad esempio, il comando
cat lorem_ipsum | tr [:lower:] [:upper:]
trasformerà tutte le lettere minuscole del file lorem_ipsum in lettere maiuscole, mostrando il risultato su standard output.
sed: simile a translate, ma in grado di applicare sostituzioni e trasformazioni più complesse. Ad esempio, il comando
cat canzone | sed /^$/d
cancellerà tutte le righe vuote dal file canzone.
awk: definire awk un semplice filtro è riduttivo poiché, grazie ai suoi numerosissimi parametri, è un intero linguaggio di programmazione progettato per costruire filtri. Come esempio riduttivo, il seguente comando
echo "Chimera Revo" | awk '{print $1}'
stamperà a video la prima parola dell’input, ovvero Chimera.
Anche questa parte della nostra guida è finita: ci ritroveremo presto con la terza ed ultima parte, dedicata ai file descriptor!
L’articolo Redirezione nel terminale – Parte 2: i filtri appare per la prima volta su Chimera Revo – News, guide e recensioni sul Mondo della tecnologia.
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.