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.