Esistono molti comandi e strumenti Linux utilizzati per elaborare file di testo. Ma ci sono momenti in cui non vuoi leggere l'intero contenuto di un file, ma piuttosto una parte specifica di esso. Sai che puoi usare i comandi head e tail su Linux per produrre rispettivamente l'inizio e la fine di un file?
Continua a leggere per scoprire come utilizzare questi due comandi per elaborare e manipolare efficacemente il testo su Linux.
Qual è il comando capo?
Il comando head viene utilizzato per stampare le parti iniziali di un file. Legge i file dall'inizio. Se hai un file che ha più di mille righe, sarebbe molto complicato aprirlo e leggerlo. Puoi facilmente stampare solo poche righe dall'alto usando il comando head.
La sintassi dei comandi head
La sintassi di base del comando head è:
Testa[opzione][file]
Sono disponibili molte opzioni da utilizzare insieme al comando head, alcune delle quali verranno discusse in seguito. A ottenere l'aiuto della riga di comando per quanto riguarda il comando head, controlla la sua pagina di manuale eseguendo:
testa d'uomo
Come usare il comando head
Per questo esempio, crea un file: numeri.txt. Nel file, elenca i numeri da uno a 20 in parole. Puoi scegliere di utilizzare qualsiasi file di tua scelta, ma assicurati che abbia almeno 11 righe.
Usando il comando head predefinito
Per impostazione predefinita, il comando head stampa le prime 10 righe di testo in un file. Provalo con il file numbers.txt eseguendo questo comando nel tuo terminale:
Testanumeri.TXT
Stamperà le prime 10 righe del file:
uno
due
tre
quattro
cinque
sei
Sette
otto
nove
dieci
Se il file ha meno di 10 righe, il comando head stamperà tutte le righe presenti.
Stampa il primo N numero di righe
È possibile utilizzare il comando head per stampare un numero specifico di righe anziché le 10 predefinite. Per stampare le prime tre righe del file numbers.txt, eseguire questo comando:
Testa-N 3 numeri.TXT
Il risultato:
uno
due
tre
Escludi le ultime N righe usando il comando head
Così come puoi stampare le prime righe di un testo, puoi anche decidere di escludere le ultime N righe durante la stampa. Puoi farlo utilizzando un numero negativo per il parametro N.
Per escludere le ultime 15 righe del file numbers.txt, eseguire:
Testa-N-15numeri.TXT
Il risultato:
uno
due
tre
quattro
cinque
Stampa i primi N caratteri di un file
Il comando head ha anche l'opzione per stampare il primo numero di caratteri o byte in un file. Puoi farlo usando il -C opzione. Per stampare i primi 10 caratteri, utilizzare:
Testa-C 10 numeri.TXT
Produzione:
uno
due
th
Qual è il comando di coda?
Come suggerisce il nome, il comando tail stampa le ultime righe di un file. Legge i file dalla fine ed emette le righe finali.
La sintassi del comando tail
La sintassi di base del comando tail è:
coda[opzione][file]
Per ulteriori informazioni sul comando tail, controlla la sua pagina di manuale emettendo:
coda dell'uomo
Come usare il comando tail
Useremo il file numbers.txt già creato per i seguenti esempi.
Usando il comando tail predefinito
Il comando tail emette le ultime 10 righe di un file se utilizzato senza opzioni speciali. Per esempio:
codanumeri.TXT
L'output visualizzerà le ultime 10 righe come menzionato:
undici
dodici
tredici
quattordici
quindici
sedici
diciassette
diciotto
diciannove
venti
Stampa l'ultimo N numero di righe
In una situazione in cui non si desidera stampare le ultime 10 righe, ma un numero specifico, è possibile utilizzare il -N opzione per raggiungere questo obiettivo. Per stampare le ultime quattro righe del file numbers.txt, eseguire questo comando:
coda-N 4 numeri.TXT
Il risultato:
diciassette
diciotto
diciannove
venti
Stampa righe dopo una riga specifica
Se vuoi iniziare da una particolare linea N, puoi usare il -N opzione insieme a un numero positivo per raggiungere questo obiettivo. Per stampare l'output del file numbers.txt dalla diciassettesima riga, eseguire questo comando:
coda-N +17 numeri.TXT
Il risultato:
diciassette
diciotto
diciannove
venti
Stampa gli ultimi N caratteri di un file
Proprio come il comando head, puoi stampare gli ultimi caratteri nel file usando il -C opzione. Per stampare gli ultimi 10 caratteri del file numbers.txt, eseguire questo comando:
coda-C 10 numeri.TXT
Il risultato:
it
venti
Utilizzo dei comandi head e tail con più file
Puoi anche usare testa e coda per stampare più di un file alla volta. Questa è la sintassi per l'utilizzo dei comandi con più input di file:
Testa[opzione][file1][file2]
coda[opzione][file1][file2]
Usando insieme i comandi di testa e coda
Puoi anche usare testa e coda nello stesso comando usando il simbolo pipe. Il simbolo della pipa reindirizza l'output di un comando come input per un altro.
Ad esempio, per ottenere la sesta, la settima e l'ottava riga, puoi eseguire questo comando:
head -n 8 numeri.txt | coda -n 3
Il risultato:
sei
Sette
otto
Nel suddetto one-liner, il comando head mostrava le prime otto righe del file, quindi l'output è stato passato al comando tail, che ha stampato le ultime tre righe del reindirizzamento produzione.
testa e coda: utili comandi di manipolazione del testo
Linux offre molti comandi per aiutarti a manipolare ed elaborare in modo efficace i file di testo, e i comandi head e tail sono solo due dei tanti. I comandi di manipolazione del testo più comuni includono grep, uniq, sort, sed, awk, ecc. Ognuno di essi soddisfa uno scopo diverso con il suo set di funzionalità unico.
Oltre a testa e coda, ci sono tantissimi altri comandi di manipolazione di testo e file disponibili per gli utenti Linux.