Comando Pipe, Grep e Ordina in Linux/Unix con esempi
⚡ Riepilogo intelligente
I comandi pipe, grep e sort in Linux e Unix concatenano e filtrano il testo: una pipe invia l'output di un comando al successivo, grep cerca modelli e sort ordina le righe, mentre i filtri trasformano i dati tra di essi.
Pipe, grep e sort sono tra gli strumenti più utilizzati su Linux riga di comando, perché permette di collegare piccoli comandi in un unico flusso di lavoro potente. Questa pagina spiega ciascuna di esse con esempi pratici, quindi mostra come i filtri le collegano tra loro.
Cos'è una pipe in Linux?
La pipe è un comando di Linux che permette di utilizzare due o più comandi in modo tale che l'output di un comando diventi l'input del successivo. In breve, l'output di ogni processo alimenta direttamente quello successivo, come in una pipeline. Il simbolo '|' indica una pipe.
Le pipe ti aiutano a combinare due o più comandi contemporaneamente ed eseguirli in sequenza. Puoi utilizzare comandi potenti che svolgono attività complesse in un batter d'occhio.
Cerchiamo di capirlo con un esempio.
Quando si utilizza il comando 'cat' per visualizzare un file che si estende su più pagine, il prompt passa rapidamente all'ultima pagina del file e non si vede il contenuto della parte centrale.
Per evitare questo problema, è possibile reindirizzare l'output del comando 'cat' al comando 'less', che mostra solo una porzione di contenuto alla volta, pari alla lunghezza dello scorrimento.
cat filename | less
Un'illustrazione chiarirebbe il concetto. Il diagramma seguente mostra come una tubazione trasferisce l'output di un comando al successivo.
comandi 'pg' e 'more'
Invece di 'less', puoi anche usare il comando pg o more:
cat Filename | pg
or
cat Filename | more
È quindi possibile visualizzare il file suddiviso in sezioni più gestibili e scorrere verso il basso semplicemente premendo il tasto Invio. Lo screenshot qui sotto mostra un file impaginato con il comando more.
Il comando "grep".
Supponiamo di voler cercare informazioni specifiche, come ad esempio un codice postale, all'interno di un file di testo.
Puoi scorrere manualmente il contenuto per trace le informazioni. Un'opzione migliore è utilizzare il grep comando. Analizza il documento alla ricerca delle informazioni desiderate e presenta il risultato nel formato desiderato.
Sintassi:
grep search_string
Vediamolo in azione. Lo screenshot qui sotto mostra il risultato della ricerca.
In questo caso, il comando grep ha cercato nel file 'sample' le stringhe 'Apple' e 'Eat'. Le seguenti opzioni possono essere utilizzate con questo comando.
| Opzione | Funzione |
|---|---|
| -v | Mostra tutte le righe che non corrispondono alla stringa cercata |
| -c | Visualizza solo il conteggio delle righe corrispondenti |
| -n | Mostra la linea corrispondente e il suo numero |
| -i | Corrisponde sia alle maiuscole che alle minuscole |
| -l | Mostra solo il nome del file con la stringa |
Proviamo ad applicare l'opzione '-i' allo stesso file utilizzato in precedenza. Lo screenshot qui sotto mostra il risultato senza distinzione tra maiuscole e minuscole.
Utilizzando l'opzione '-i', grep ha filtrato la stringa 'a' (senza distinzione tra maiuscole e minuscole) da tutte le righe.
Il comando "ordina".
Questo comando aiuta a ordinare alfabeticamente il contenuto di un file.
La sintassi per questo comando è:
sort Filename
Consideriamo il contenuto di un file, mostrato con il gatto qui sotto.
L'esecuzione del comando sort ordina le righe in ordine alfabetico, come mostrato di seguito.
Esistono anche delle estensioni a questo comando, che sono elencate di seguito.
| Opzione | Funzione |
|---|---|
| -r | Reversesmistamento |
| -n | Ordina numericamente |
| -f | Ordinamento senza distinzione tra maiuscole e minuscole |
L'esempio seguente mostra l'ordinamento inverso dei contenuti nel file 'abc'.
Cos'è un filtro?
Linux dispone di numerosi comandi di filtro, come awk, grep, sed, spell e wc. Un filtro riceve un input da un comando, lo elabora e restituisce un output.
Quando si concatenano due comandi, l'output "filtrato" del primo comando viene passato al successivo. Il diagramma seguente illustra come un filtro si inserisce in una pipeline.
Cerchiamo di capirlo con l'aiuto di un esempio. Abbiamo il seguente file 'sample', mostrato con il gatto qui sotto.
Vogliamo evidenziare solo le righe che non contengono il carattere 'a', ma il risultato deve essere in ordine inverso. A tale scopo, è possibile utilizzare la seguente sintassi:
cat sample | grep -v a | sort -r
Osserviamo il risultato, mostrato nello screenshot qui sotto.








.png)
.png)

