Potresti sapere che il comando cat viene utilizzato per stampare il contenuto di un file sul terminale. Il gatto comando stampa l'intero file sul terminale.
Head è un altro modo per visualizzare file di testo in Linux. Puoi usare testa comando per stampare un numero specificato di righe dall'inizio del file.
Ecco la sintassi del comando head:
head [option] [filename]
7 esempi di comando principale
Impariamo come usare il comando head in Linux con esempi pratici.
Userò il file agatha.txt in questo esempio ed ecco il contenuto di questo file di testo. Puoi scaricare il file per esercitarti con i comandi mentre segui questo tutorial:
The Mysterious Affair at Styles
The Secret Adversary
The Murder on the Links
The Man in the Brown Suit
The Secret of Chimneys
The Murder of Roger Ackroyd
The Big Four
The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
Giant's Bread
The Floating Admiral
The Sittaford Mystery
Peril at End House
Lord Edgware Dies
Murder on the Orient Express
Unfinished Portrait
Why Didn't They Ask Evans?
Three Act Tragedy
Death in the Clouds
Se non utilizzi alcuna opzione con il comando head, verranno stampate le prime 10 righe per impostazione predefinita
head agatha.txt
The Mysterious Affair at Styles
The Secret Adversary
The Murder on the Links
The Man in the Brown Suit
The Secret of Chimneys
The Murder of Roger Ackroyd
The Big Four
The Mystery of the Blue Train
The Seven Dials Mystery
The Murder at the Vicarage
Se il file ha meno di dieci righe, stamperà tutte le righe, ovviamente.
1. Stampa le prime N righe con il comando head
Quando hai bisogno di stampare un numero specifico di righe, puoi usare l'opzione -n seguita dal numero di righe.
Ad esempio, per visualizzare le prime 3 righe, puoi utilizzare questo:
head -n 3 agatha.txt
The Mysterious Affair at Styles
The Secret Adversary
The Murder on the Links
2. Stampa tutto tranne le ultime N righe
Puoi escludere un numero specifico di righe alla fine del file e stampare il contenuto rimanente del file fornendo un numero negativo all'opzione -n.
Ad esempio, se vuoi lasciare le ultime 15 righe del file, puoi usare questo comando:
head -n -15 agatha.txt
The Mysterious Affair at Styles
The Secret Adversary
The Murder on the Links
The Man in the Brown Suit
The Secret of Chimneys
3. Utilizzo di più file con il comando head
Puoi fornire più di un file come input per il comando head.
head -n N file1 file2 file3
Ad esempio, se devi visualizzare le prime due righe di due file, puoi utilizzare qualcosa del genere:
head -n 2 agatha.txt sherlock.txt
==> agatha.txt <==
The Mysterious Affair at Styles
The Secret Adversary
==> sherlock.txt <==
A Scandal in Bohemia
The Red-Headed League
Come puoi vedere, l'output di ogni file è separato da ==> nomefile <==.
4. Gestione dell'intestazione nell'output
Come hai visto nell'ultimo esempio, il comando head stampa il nome del file come intestazione sopra l'output di ogni file per separarli.
Puoi usare l'opzione -q (modalità silenziosa) per omettere il nome del file dall'output.
head -q -n 2 agatha.txt sherlock.txt
The Mysterious Affair at Styles
The Secret Adversary
A Scandal in Bohemia
The Red-Headed League
Potresti anche aver notato che l'intestazione non viene stampata per un singolo file di input. Puoi forzarlo a stampare il nome del file con l'opzione -v (modalità dettagliata).
head -v -n 2 agatha.txt
==> agatha.txt <==
The Mysterious Affair at Styles
The Secret Adversary
Nota – La dimensione di un carattere è un byte.
5. Stampa di un numero specifico di byte/caratteri
Se hai bisogno di stampare un numero specifico di byte di un file, puoi usare l'opzione -c seguita dal numero.
Normalmente, la dimensione di un carattere è un byte. Quindi puoi pensarlo come se stampi un certo numero di caratteri.
head -c3 agatha.txt
The
Puoi anche escludere un numero specifico di byte alla fine poiché hai escluso un numero specifico di righe alla fine. Per farlo, specifica un valore negativo nell'opzione -c.
head -c -50 agatha.txt
Suggerimento bonus:stampa N numero di righe di un file per combinando i comandi di testa e coda
E se volessi stampare N numero di righe nel mezzo di un file?
Ad esempio, se vuoi stampare le righe da 10 a 15 di un file, puoi combinare il comando head con il comando tail.
head -n 15 agatha.txt | tail -n +10
Il comando head stampa le prime 15 righe del file. Quindi il comando tail prende questo output e stampa tutte le righe a partire dalla riga numero 10. Questo ti dà le righe da 10 a 15.
Se vuoi stampare solo l'ennesima riga, puoi farlo combinando di nuovo testa e coda.
head -n 15 agatha.txt | tail -n 1
Quindi, il comando head stampa le prime 15 righe del file e quindi il comando tail stampa l'ultima riga di questo output. Quindi, ottieni la 15a riga.
Spero che tu abbia compreso l'uso del comando principale e le sue opzioni. Se hai qualche domanda, commenta qui sotto!