Come saltare la prima riga di un file usando 'awk'

Come saltare la prima riga di un file usando 'awk'

Esistono vari usi del comando "awk" in Linux. Ad esempio, può essere utilizzato per stampare il contenuto di un file di testo. La prima riga di molti file di testo contiene l'intestazione del file e, a volte, la prima riga deve essere saltata durante la stampa del contenuto del file. In questo tutorial, ti mostreremo come eseguire questo compito usando il comando 'awk'.

Crea un file di testo

Per seguire questo tutorial, crea un file di testo delimitato da scheda denominato lista di libri.TXT Con i seguenti contenuti. Questo file contiene un elenco di libri con i loro autori corrispondenti. In questo tutorial, ti mostreremo come stampare diverse parti di questo file dopo aver saltato la prima riga.

Sicurezza informatica con Bash Paul Troncone, Carl Albing
Linea di comando Kung Fu Jason Cannon
Line di comando Linux Travis Booth
Bash in Easy Steps Mike McGrath
Unix in Easy Steps Mike McGrath

Esempio 1: saltare la prima riga di un file usando NR e l'operatore '>'

La variabile NR indica il numero di record in un file. Il seguente comando "AWK" utilizza la variabile NR per saltare la prima riga di un file. Il valore di NR è 1 per la prima riga. Il comando seguente stamperà le righe per le quali il valore NR è maggiore di 1.

$ cat booklist.TXT
$ awk '(nr> 1) "".TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. L'output include tutte le righe diverse dalla prima riga del file.

Esempio 2: saltare la prima riga usando NR e il '!= 'operatore

Il seguente comando "awk" è simile a quello nell'esempio precedente. Comunque, il '!= 'L'operatore di confronto viene utilizzato qui invece di'> '.

$ cat booklist.TXT
$ awk 'nr!= 1 'List.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. L'output mostra tutte le righe diverse dalla prima riga del file.

Esempio 3: saltare la prima riga di un file utilizzando un'istruzione condizionale

Il seguente comando "awk" stamperà le righe del file se l'istruzione if è vera. Qui, l'istruzione IF sarà vera solo quando il valore NR non è uguale a 1.

$ cat booklist.TXT
$ awk 'if (nr!= 1) print 'booklist.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. L'output include tutte le righe tranne la prima riga del file.

Esempio 4: stampare i nomi dei libri dal file ma saltare la prima riga

In questo esempio sono usati due comandi "awk" per stampare tutti i nomi dei libri tranne i primi. Il comando 'AWK' leggerà la prima colonna dal file in base al separatore di campo (\ t) e invierà l'output al secondo comando 'awk'. Il secondo comando "awk" stamperà l'output desiderato.

$ cat booklist.TXT
$ awk -f "\ t" 'print $ 1' booklist.txt | awk 'nr!= 1 print '

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. L'output mostra tutti i nomi dei libri tranne quelli del primo libro.

Esempio 5: formattare il contenuto del file dopo aver saltato la prima riga

L'opzione "-f", la variabile NR e la funzione printf sono utilizzate nel seguente comando "awk" per generare output formattato dopo aver saltato la prima riga. Il comando dividerà il contenuto del file in colonne in base a \ t e printf stamperà la prima e la seconda colonne quando il valore NR è almeno 2.

$ cat booklist.TXT
$ awk -f '\ t' 'nr> = 2 printf " %30s %20s \ n", $ 1, $ 2 ".TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. L'output mostra il contenuto formattato del file, escluso la prima riga del file.

Esempio 6: stampare i nomi dei libri dopo aver saltato la prima riga usando NR e NF

Il seguente comando "awk" utilizza l'opzione "-f" e NR e NF per stampare i nomi del libro dopo aver saltato il primo libro. L'opzione '-f' viene utilizzata per separare il contenuto della base di file su \ t. NR viene utilizzato per saltare la prima riga e NF viene utilizzato solo per stampare la prima colonna.

$ cat booklist.TXT
$ awk -f '\ t' 'nr> 1 && nf = 1' booklist.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. L'output include tutti i nomi dei libri nel file ad eccezione di quello del primo libro.

Esempio 7: stampare i nomi degli autori formattati dopo aver saltato la prima riga

Il seguente comando "awk" utilizza l'opzione "-f" e un'istruzione condizionale per stampare i nomi degli autori dopo aver saltato la prima riga. Qui, il valore NR viene utilizzato nella condizione if. Qui, "Nome dell'autore: \ n \ n" verrà stampato come prima riga invece del contenuto della prima riga. I nomi dell'autore dal file verranno stampati per gli altri valori di NR.

$ cat booklist.TXT
$ awk -f '\ t' 'if (nr == 1) printf "\ nauthor Nome: \ n \ n"; else printf "%s \ n", $ 2 'booklist.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra. L'output mostra il testo "Nome autore:" con una nuova linea e tutti i nomi degli autori sono stampati tranne il primo.

Conclusione

La prima riga di un file può essere saltata utilizzando vari comandi Linux. Come mostrato in questo tutorial, ci sono diversi modi per saltare la prima riga di un file usando il comando 'awk'. Nothabilmente, la variabile NR del comando 'AWK' può essere utilizzata per saltare la prima riga di qualsiasi file.