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!