GNU/Linux >> Linux Esercitazione >  >> Linux

Comando AWK in Linux/Unix

AWK è adatto per la ricerca e l'elaborazione di modelli. Lo script viene eseguito per cercare uno o più file per identificare i modelli corrispondenti e se detti modelli eseguono attività specifiche. In questa guida, diamo un'occhiata al comando AWK Linux e vediamo cosa può fare.

Quali operazioni può eseguire AWK?

  • Scansione dei file riga per riga
  • Dividi ogni riga di input in campi
  • Confronto delle righe e dei campi di input con i modelli
  • Esecuzione di azioni specificate su righe corrispondenti

Utilità del comando AWK

  • Modifica dei file di dati
  • Produzione di rapporti formattati

Concetti di programmazione per il comando awk

  • Formatta righe di output
  • Condizionale e loop
  • Operazioni aritmetiche e sulle stringhe

Sintassi AWK

$ awk options 'selection _criteria {action }' input-file > output-file

Per dimostrare di più sull'utilizzo di AWK, utilizzeremo il file di testo chiamato file.txt

1a colonna => Articolo,
2a colonna => Modello
3a colonna => Paese
4a colonna => Costo

Esempi di comando Awk

Stampa di colonne specifiche

Per stampare la 2a e la 3a colonna, eseguire il comando seguente.

$ awk '{print $2 "\t" $3}' file.txt

Risultato

Stampa di tutte le righe in un file

Se desideri elencare tutte le righe e le colonne in un file, esegui

$ awk ' {print $0}' file.txt

Risultato

Stampa di tutte le linee che corrispondono a uno schema specifico

se vuoi stampare linee che corrispondono a un certo schema, la sintassi è quella mostrata

$ awk '/variable_to_be_matched/ {print $0}' file.txt

Ad esempio, per abbinare tutte le voci con la lettera "o", la sintassi sarà

$ awk '/o/ {print $0}' file.txt

Risultato

Per abbinare tutte le voci con la lettera 'e'

$ awk '/e/ {print $0}' file.txt

Risultato

Stampa di colonne che corrispondono a uno schema specifico

Quando AWK individua una corrispondenza di pattern, il comando eseguirà l'intero record. Puoi modificare l'impostazione predefinita impartendo un'istruzione per visualizzare solo determinati campi.

Ad esempio:

$ awk '/a/ {print $3 "\t" $4}' file.txt

Il comando precedente stampa la 3a e la 4a colonna in cui la lettera 'a' appare in una delle colonne

Risultato

Conteggio e stampa di motivi abbinati

Puoi usare AWK per contare e stampare il numero di righe per ogni corrispondenza del modello. Ad esempio, il comando seguente conta il numero di istanze in cui appare un pattern corrispondente

$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt

Risultato

Stampa righe con più o meno di un numero di caratteri

AWK ha una funzione di lunghezza incorporata che restituisce la lunghezza della stringa. Dal comando $0 la variabile memorizza l'intera riga e in assenza di un body block viene eseguita l'azione di default, ovvero l'azione di stampa. Pertanto, nel nostro file di testo, se una riga ha più di 18 caratteri, il confronto risulta vero e la riga viene stampata come mostrato di seguito.

$ awk 'length($0) > 20' file.txt

Risultato

Salvataggio dell'output di AWK in un file diverso

Se desideri salvare l'output dei tuoi risultati, utilizza l'operatore di reindirizzamento>. Ad esempio

$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt

Puoi verificare i risultati usando il comando cat come mostrato di seguito

$ cat output.txt

Risultato

Conclusione

AWK è un altro semplice script di programmazione che puoi utilizzare per manipolare il testo nei documenti o eseguire funzioni specifiche. I comandi condivisi sono pochi o molti che devi ancora conoscere o incontrare.


Linux
  1. Comando wc Linux

  2. comando Linux grep

  3. ln Esempi di comandi in Linux

  4. file Esempi di comandi in Linux

  5. esempi di comandi tail in UNIX/Linux

Comando Stat in Linux

Comando Awk in Linux

comando mkdir in Linux/Unix

Comando Grep in Linux/UNIX

comando ls in Linux/UNIX

comando cp in Linux/UNIX