GNU/Linux >> Linux Esercitazione >  >> Linux

Come aggiungere numeri di riga a file di testo su Linux

Ti sei mai chiesto come aggiungere numeri di riga all'output standard dei file di testo? Questa breve guida spiega come aggiungere numeri di riga a un determinato file di testo. Esistono diversi modi per aggiungere i numeri di riga a un file. Qui ho coperto 6 diversi metodi per farlo. Continuerò ad aggiungere altri metodi se ne incontrerò qualcuno in futuro. È meglio aggiungere questa guida ai segnalibri e tornare più tardi per vedere se ci sono aggiunte.

Metodo 1:utilizzo del comando 'nl'

Il comando "nl" è dedicato all'aggiunta di numeri di riga a un file. Scrive il file specificato nell'output standard, con l'aggiunta di numeri di riga. Ho un file chiamato file.txt con i seguenti contenuti.

$ cat file.txt 
This is line1
This is line2
This is line3

This is line5


This is line8

Come puoi vedere nell'output sopra, il file ha 8 righe, con tre righe vuote. Aggiungiamo i numeri di riga.

Per farlo, esegui:

 $ nl file.txt
 1 This is line1
 2 This is line2
 3 This is line3
 
 4 This is line5
 
 
 5 This is line8

Il comando nl non terrà conto delle righe vuote. Aggiungerà solo i numeri alle righe non vuote. Se vuoi numerare tutte le righe comprese le righe vuote, usa -b segnala come sotto.

 $ nl -b a file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Inoltre, puoi aggiungere un simbolo/caratteri speciali dopo i numeri. Ad esempio, per aggiungere un punto (.) dopo i numeri, esegui:

 $ nl -s "." file.txt 
 1.This is line1
 2.This is line2
 3.This is line3
 
 4.This is line5
 
 
 5.This is line8

Potresti voler allineare la larghezza dell'output. Per farlo, usa -w flag come di seguito.

$ nl -w2 file.txt

Metodo 2:utilizzo del comando 'cat'

Il comando cat viene utilizzato per visualizzare il contenuto di un file. Se vuoi aggiungere numeri all'output di un file, usa -n flag come di seguito.

 $ cat -n file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

In alternativa, puoi passare l'output standard a un nuovo file come di seguito.

$ cat -n file.txt > newfile.txt

Potresti anche voler eliminare le righe vuote ripetute.

 $ cat -s -n file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 This is line8

Metodo 3:utilizzo del comando 'awk'

Per aggiungere numeri di riga all'output di un file usando il comando awk, esegui:

$ awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 
1.This is line1
2.This is line2
3.This is line3
4.
5.This is line5
6.
7.
8.This is line8

Come si può notare, ho assegnato il numero di partenza come 1 nel parametro BEGIN. Puoi assegnare qualsiasi altro numero di partenza a tua scelta, ad esempio 5, come mostrato di seguito.

$ awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 
5.This is line1
6.This is line2
7.This is line3
8.
9.This is line5
10.
11.
12.This is line8

Usa il comando seguente se non vuoi prendere in considerazione le righe vuote:

$ awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s \n",i,$0); i++} else { print $0} } ' file.txt

Se pensi che i comandi precedenti siano un po' difficili da ricordare, usa invece il comando seguente.

$ awk '{ print FNR " " $0 }' file.txt 
1 This is line1
2 This is line2
3 This is line3
4 
5 This is line5
6 
7 
8 This is line8

Se vuoi aumentare lo spazio tra i numeri e il testo, esegui:

$ awk '{ print FNR "\t " $0 }' file.txt

Metodo 4 - Utilizzo del comando 'sed'

Per aggiungere numeri di riga a un output standard di un file usando il comando sed, esegui:

$ sed '/./=' file.txt | sed '/./N; s/\n/ /'
1 This is line1
2 This is line2
3 This is line3

5 This is line5


8 This is line8

Il comando sed ha una caratteristica interessante che mi piace di più. Possiamo visualizzare una N esima riga da un file. Ad esempio, per visualizzare la terza riga in un file, eseguire:

$ sed -n 3p file.txt 
This is line3

Metodo 5 - Utilizzo del comando 'meno'

Per eseguire il numero di riga sull'output standard di un file utilizzando less comando, eseguire:

 $ less -N file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Metodo 6:utilizzo del comando 'grep'

Il comando grep può essere utilizzato per cercare una riga che contiene una riga specifica. Se desideri aggiungere i numeri di riga a una riga che contiene una lettera specifica, ad esempio riga , esegui:

$ grep -n "line" file.txt 
1:This is line1
2:This is line2
3:This is line3
5:This is line5
8:This is line8

Tieni presente che questo comando aggiungerà solo i numeri alle righe che contengono la stringa di ricerca. Tutto il resto nel file specificato verrà omesso.

E questo è tutto. Per maggiori dettagli sui comandi precedenti fare riferimento alle pagine man. Ora conosci i diversi metodi per aggiungere i numeri di riga ai file di testo. Spero che lo trovi utile. Altre cose buone in arrivo. Resta sintonizzato!

Ciao!


Linux
  1. Come dividere e combinare file dalla riga di comando in Linux

  2. Come unire due file di testo in Linux

  3. Come aggiungere riga di intestazione e trailer a un file in Linux

  4. Come distinguere il binario dai file di testo in Linux

  5. Come dividere un file di testo in più file *.txt?

Come confrontare e unire file di testo su Linux

Come rinominare uno o più file in Linux

Come dividere un file di grandi dimensioni in parti a numeri di riga dati

Come aggiungere testo all'inizio del file in Linux

Come trovare file contenenti una stringa di testo specifica in Linux

Come comprimere un file in Linux