GNU/Linux >> Linux Esercitazione >  >> Linux

Come visualizzare righe specifiche di un file nella riga di comando di Linux

Come faccio a trovare l'ennesima riga in un file nella riga di comando di Linux? Come faccio a visualizzare il numero di riga x sul numero di riga y?

In Linux, ci sono diversi modi per ottenere lo stesso risultato. La stampa di righe specifiche da un file non fa eccezione.

Per visualizzare la 13a riga, puoi utilizzare una combinazione di testa e coda:

head -13 file_name | tail +13

Oppure puoi usare il comando sed:

sed -n '13p' file.txt

Per visualizzare i numeri di riga da 20 a 25, puoi combinare i comandi di testa e coda in questo modo:

head -25 file_name | tail +20

Oppure puoi usare il comando sed in questo modo:

sed -n '20,25p' lines.txt 

Segue una spiegazione dettagliata di ciascun comando. Mostrerò anche l'uso del comando awk per questo scopo.

Visualizza linee specifiche usando i comandi di testa e coda

Questo è il mio modo preferito di visualizzare le linee di scelta. Lo trovo più facile da ricordare e da usare.

Usa una combinazione di comando testa e coda nella seguente funzione il numero di riga x:

head -x file_name | tail +x

È possibile sostituire x con il numero di riga che si desidera visualizzare. Quindi, supponiamo che tu voglia visualizzare la 13a riga del file.

[email protected]:~$ head -13 lines.txt | tail +13
This is line number 13

Spiegazione :Probabilmente sai già che il comando head ottiene le righe di un file dall'inizio mentre il comando tail ottiene le righe dalla fine.

La parte "head -x" del comando otterrà le prime x righe dei file. Quindi reindirizzerà questo output al comando tail. Il comando tail visualizzerà tutte le righe a partire dalla riga numero x.

Ovviamente, se prendi 13 righe dall'alto, le righe che iniziano dal numero 13 fino alla fine saranno la 13a riga. Questa è la logica dietro questo comando.

Ora prendiamo la nostra combinazione di comandi head e tail per visualizzare più di una riga.

Supponiamo di voler visualizzare tutte le linee da x a y. Ciò include anche la riga x e y:

head -y lines.txt | tail +x

Facciamo un esempio pratico. Supponiamo di voler stampare tutte le righe dalla riga 20 alla 25:

[email protected]:~$ head -25 lines.txt | tail +20
This is line number 20
This is line number 21
This is line number 22
This is line number 23
This is line number 24
This is line number 25

Utilizza SED per visualizzare righe specifiche

Il potente comando sed fornisce diversi modi per stampare righe specifiche.

Ad esempio, per visualizzare la decima riga, puoi usare sed nel modo seguente:

sed -n '10p' file.txt

Il -n sopprime l'output mentre il comando p stampa righe specifiche. Leggi questa guida dettagliata SED per impararla e comprenderla in dettaglio.

Per visualizzare tutte le righe dalla riga numero x alla riga numero y, utilizzare questo:

[email protected]:~$ sed -n '3,7p' lines.txt 
This is line number 3
This is line number 4
This is line number 5
This is line number 6
This is line number 7

Utilizza AWK per stampare righe specifiche da un file

Il comando awk potrebbe sembrare complicato e c'è sicuramente una curva di apprendimento coinvolta. Ma come sed, awk è anche abbastanza potente quando si tratta di modificare e manipolare i contenuti dei file.

[email protected]:~$ awk 'NR==5' lines.txt 
This is line number 5

NR indica il 'numero di record corrente'. Per ulteriori informazioni, leggi la nostra guida dettagliata ai comandi AWK.

Per visualizzare tutte le righe da x a y, puoi usare il comando awk nel modo seguente:

[email protected]:~$ awk 'NR>=20 && NR<=25' lines.txt 
This is line number 20
This is line number 21
This is line number 22
This is line number 23
This is line number 24
This is line number 25

Segue una sintassi simile alla maggior parte dei linguaggi di programmazione.

Spero che questo rapido articolo ti abbia aiutato a visualizzare righe specifiche di un file nella riga di comando di Linux. Se conosci qualche altro trucco per questo scopo, condividilo con il resto di noi nella sezione commenti.


Linux
  1. Con il comando "cat" di Linux, come mostrare solo determinate righe per numero?

  2. Eliminazione di righe specifiche da un file nella riga di comando di Linux

  3. Comando wc Linux

  4. Come contare il numero di righe in un file in Linux (esempi di comandi wc e nl)

  5. Comando unix rapido per visualizzare righe specifiche nel mezzo di un file?

Incolla comando in Linux (Unisci righe)

Come stampare righe duplicate in un file di testo in Linux

Come mescolare le linee in un file in Linux

Come rimuovere le righe da un file usando il comando Sed

Come trovare le righe più lunghe in un file in Linux

Come estrarre il file Tar.xz sulla riga di comando di Linux