Cos'è NR integrato awk?

Cos'è NR integrato awk?
AWK è un linguaggio di scripting molto potente che può essere usato direttamente dal terminale Linux. Funziona con i comandi di passaggio su cui opera il sistema. Questo linguaggio di scripting ha una serie di diverse variabili speciali integrate e l'obiettivo di questo articolo è parlare di una di queste variabili speciali seguite dal suo utilizzo. Quella variabile si chiama "NR". Esploriamo ulteriormente come possiamo utilizzare questa variabile in AWK.

Cos'è NR integrato awk?

"NR" è una speciale variabile integrata di AWK che sta per "Numero di record". Questa variabile viene utilizzata per gestire il numero di record presenti nei file specificati.

Esempi di utilizzo di NR integrato in Ubuntu 20.04:

Per conoscere ulteriormente l'uso di NR integrato AWK, dovrai passare attraverso i seguenti esempi che sono stati implementati su un Ubuntu 20.04 Sistema. Tuttavia, prima di parlare di questi esempi, vorremmo condividere con te il file di testo di esempio che abbiamo creato nella nostra home directory nominati nomi.TXT. Questo file contiene i nomi di pochi individui, seguiti dalle rispettive età. Useremo lo stesso file di testo per dimostrare tutti e quattro gli esempi. Questo file di testo è il seguente:

Esempio n. 1: visualizzare i numeri di riga con i record in un file di testo:

In questo esempio, vogliamo visualizzare tutti i record del nostro file di testo target in modo che ogni record sia assegnato con un numero di riga specifico a seguito di un ordine ascendente. Avresti notato sopra che il file di testo che stiamo usando contiene alcuni record, ma erano senza numeri di riga. Inoltre, i record qui si riferiscono alle righe distinte di testo presenti in un file di testo. Ad esempio, se un file di testo ha cinque righe diverse, diremo che ha cinque record diversi. Per rendere possibile la dichiarazione di cui sopra, io.e., Visualizza i numeri della riga insieme ai record del nostro file di testo target, eseguiremo il seguente comando nel nostro terminale:

$ awk 'print nr, $ 0' nomi.TXT

In questo comando, la parola chiave "AWK" dirà al nostro sistema che stiamo cercando di eseguire un comando usando il linguaggio di scripting AWK. Quindi, abbiamo un comando "stampa" seguito dalla parola chiave "NR" e dalla variabile speciale "$ 0". Ora, questa parte del comando servirà allo scopo di visualizzare i numeri di riga insieme ai record presenti nel nostro file di testo target. Infine, abbiamo fornito il nome del nostro file di testo target in questo comando in modo che possa essere leggermente letto. Abbiamo eseguito questo comando semplicemente premendo il tasto Invio.

Puoi facilmente vedere nel terminale che a seguito dell'esecuzione di questo comando, il contenuto del nostro file di testo target, i.e., Tutti i record del nostro file di testo sono stati visualizzati insieme ai rispettivi numeri di riga come mostrato nell'immagine seguente:

Esempio n. 2: visualizzare i record di un file di testo che si trova in un intervallo specificato:

A volte, non si desidera che tutti i record del file vengano visualizzati o elaborati ulteriormente; Piuttosto, vuoi solo utilizzare i record che si trovano all'interno di un intervallo specificato. Pertanto, in questo esempio, vogliamo che tutti i record di file di testo target vengano visualizzati sul terminale che si trova nel nostro intervallo di numeri di riga specificata. Per capirlo ulteriormente, devi prima guardare il seguente comando che verrà utilizzato per servire a questo scopo:

$ awk 'nr == 4, nr == 8 print nr, $ 0' nomi.TXT

In questo comando, la parola chiave "AWK" dirà al nostro sistema che stiamo cercando di eseguire un comando usando il linguaggio di scripting AWK. Quindi, abbiamo l'istruzione 'nr == 4, nr == 8' che specificherà l'intervallo di record da visualizzare, i.e., Utilizzando questa particolare affermazione, i nostri record dai numeri di riga da 4 a 8 (inclusivo) verranno visualizzati sul terminale. Puoi definire questo intervallo in base alla tua scelta. Successivamente, abbiamo il comando "stampa" seguito dalla parola chiave "NR" e dalla variabile speciale "$ 0". Ora, questa parte del comando servirà allo scopo di visualizzare i numeri di riga insieme ai record specificati presenti nel nostro file di testo di destinazione. Infine, abbiamo fornito il nome del nostro file di testo target in questo comando in modo che possa essere leggermente letto. Abbiamo eseguito questo comando semplicemente premendo il tasto Invio.

È possibile visualizzare facilmente sul terminale che, a seguito dell'esecuzione di questo comando, il contenuto specifico del nostro file di testo target, i.e., Tutti i record del nostro file di testo che si trovano all'interno dell'intervallo specificato, sono stati visualizzati insieme ai rispettivi numeri di linea, come mostrato nell'immagine seguente:

Esempio n. 3: visualizzazione dei numeri di riga con i record specifici in un file di testo separati dal simbolo speciale "-":

Per rendere più leggibile il contenuto di un file di testo, potresti voler separare i numeri di riga dai record utilizzando qualsiasi simbolo speciale. Inoltre, potresti voler visualizzare una colonna specifica di tutti i record. Abbiamo progettato questo esempio per elaborare il metodo di visualizzazione dei numeri di riga con la colonna specifica dei record di un file di testo separati dal simbolo speciale "-". Per raggiungere questo tipo di output, dovrai eseguire il seguente comando:

$ awk 'print nr “-”, $ 1' nomi.TXT

Questo comando è praticamente simile al comando che abbiamo eseguito per il nostro primo esempio. Tuttavia, l'unica differenza è che abbiamo specificato il separatore "-". Inoltre, invece di utilizzare la variabile speciale "$ 0", abbiamo utilizzato la variabile speciale "$ 1", che specificherà che è necessario stampare solo la prima colonna di tutti i record dei file di testo.

Nell'output mostrato di seguito, è possibile vedere che è stata visualizzata solo la prima colonna di tutti i record del nostro file di testo target; Tuttavia, i numeri di linea erano ben separati dai record con l'aiuto del simbolo speciale "-".

Esempio n. 4: visualizzazione del numero totale di record in un file di testo:

A volte, potresti voler solo visualizzare il numero totale di record del file. Per fare ciò, devi semplicemente eseguire il seguente comando:

$ awk 'end print nr' nomi.TXT

In questo comando, la parola chiave "fine" dirà al sistema che deve solo contare il numero di record del file di testo e l'istruzione "stampa NR" dirà al sistema di stampare il numero totale di record sul terminale.

Sappiamo che avevamo un totale di 10 record nel nostro file di testo target, e questo è anche verificato dall'output del comando sopra menzionato mostrato nell'immagine seguente:

Conclusione:

Questo articolo è stato aperto con una breve introduzione al linguaggio di scripting Awk. Il punto cruciale di questa guida è stato quello di insegnarti l'uso della variabile speciale "NR" AWK integrato. Innanzitutto, abbiamo fornito una panoramica di questa variabile speciale, seguita da quattro diversi esempi con l'aiuto di cui puoi capire il suo utilizzo. Una volta attraversato questi esempi, sarai in una buona posizione per utilizzare efficacemente questa variabile speciale in AWK.