Top 10 fantastici esempi di comandi awk

Top 10 fantastici esempi di comandi awk
Il comando AWK è uno strumento potente per elaborare i dati. Ottiene dati di input, li manipola e fornisce risultati in output standard. Varie operazioni possono essere eseguite su righe e colonne di un file.

Conoscere gli elementi essenziali del comando "AWK" è molto importante quando si tratta di elaborare i dati in modo efficiente e questo post copre le caratteristiche chiave del comando "AWK". Controlliamo prima la sintassi:

$ awk [opzioni] [file]

Alcune delle opzioni comunemente usate sono riportate nella tabella seguente:

Opzione Descrizione
-F Per specificare un separatore di file
-F Specificare il file che contiene lo script "awk"
-v Per assegnare la variabile

Diamo un'occhiata ad alcuni esempi sull'uso del comando "awk" e, per dimostrazione, ho creato un file di testo di nome Testfile.TXT:

Come stampare una colonna di un file con il comando awk?

Il comando "awk" può essere utilizzato per ottenere una colonna specifica del file di testo. Per stampare il contenuto dell'uso del file:

$ gatto testfile.TXT

Ora, per stampare la seconda colonna del file, utilizzare:

$ awk 'print $ 2' Testfile.TXT

Per stampare più di un campo, utilizzare il comando:

$ awk 'stampa $ 1, $ 2, $ 3' Testfile.TXT

Se non usi la virgola "", l'output sarà senza spazi:

$ awk 'stampa $ 1 $ 2 $ 3' Testfile.TXT

Come usare l'espressione regolare con comando AWK:

Per abbinare le stringhe o qualsiasi espressione, utilizziamo le barre "//", per esempio, se si desidera stampare i nomi delle persone che studiano "storia", quindi usano:

$ awk '/ history/ stampa $ 2' Testfile.TXT

L'output mostra chiaramente che solo "Sam" e "Tommy" stanno studiando il corso "Storia".

Come usare l'espressione relazionale con il comando "awk":

Per abbinare il contenuto di un campo specifico, è possibile utilizzare l'espressione relazionale. Per abbinare qualsiasi stringa o espressione su un campo, indicare il campo e utilizzare l'operatore di confronto "~" con il modello presentato nel comando seguente:

$ awk '$ 3 ~/ is/ stampa $ 2' Testfile.TXT

L'output sopra visualizzato ogni campo nella colonna 2 contro ogni campo che contiene "è" nella colonna 3.

E per ottenere l'output opposto del comando sopra, usa il "! ~ ”Operatore:

$ awk '$ 3! ~/ is/ stampa $ 2 'testfile.TXT

Per fare un confronto, possiamo anche usare operatori come maggiori di ">" e meno di "<” and equal “=” as well:

$ awk '$ 4> 70 stampa $ 2' Testfile.TXT

L'output ha stampato i nomi di persone che hanno ottenuto segni di oltre 70.

Come utilizzare il pattern Range con comando AWK:

Un intervallo può essere utilizzato anche per la ricerca; Basta usare la virgola "," per separare l'intervallo come presentato nel comando di seguito:

$ awk '/joel/,/marlene/stampa $ 3' Testfile.TXT

L'output mostra i soggetti dell'intervallo da "Joel" a "Marlene" dalla colonna 2. Possiamo usare il doppio segno uguale "==" per definire un intervallo; Vedi l'esempio seguente:

$ awk '$ 4 == 80, $ 4 == 90 stampa $ 0' Testfile.TXT

L'output visualizza i nomi delle persone dalla colonna 2 per l'intervallo di segni da "da 70 a 80" dalla colonna 4.

Come combinare il pattern usando l'operatore logico:

L'uso di operatori logici come o "||" e "&&" ti consentono di combinare modelli per la ricerca. Usa il seguente comando

$ awk '$ 4> 80 && $ 6> 0.4 stampa $ 2 'testfile.TXT

Il comando sopra stampa i nomi delle persone contro il quarto campo più significativo di 80 e il sesto campo maggiore di 0.4. E solo due record stanno soddisfacendo la condizione.

Le espressioni speciali del comando awk:

Ci sono due espressioni speciali, "INIZIO" E "FINE":

Inizia: per eseguire un'azione prima che i dati vengano elaborati

Fine: per eseguire un'azione dopo l'elaborazione dei dati

$ awk 'inizio print "L'elaborazione è iniziata"; Stampa $ 2; End stampa "L'elaborazione è finita" 'Testfile.TXT

L'utile variabile integrata del comando AWK:

Il comando AWK ha varie variabili che aiutano nell'elaborazione dei dati:

Variabile Descrizione
Nf Fornisce il numero di campi nei dati
Nr Fornisce il numero del record corrente
NOME DEL FILE Visualizza il nome del file attualmente in fase di elaborazione
Fs e dis Separatore di campo e separatore di campo di uscita
Rs e Ors Separa il separatore di record record e output

Per esempio:

$ awk 'end stampa "Il nome file è" file "ha" nf "fields e" nr "records" "Testfile.TXT

Usiamo "fine", ma se usi "inizio", l'output darebbe 0 campi e 0 record.

Come cambiare il separatore record:

Il separatore predefinito nel record è di solito spazio; Se c'è una virgola "," o punto "."Come separatore di campo, quindi usa l'opzione" FS "insieme al separatore.

Facciamo un altro file in cui i campi di dati sono separati da un virgola ":":

$ CAT TESTFILE2.TXT
$ awk 'inizio fs = ":" stampa $ 2' testfile2.TXT

Poiché il separatore del file è un colon, ma il comando "awk" anche benefico per i file come questo, usa semplicemente l'opzione "FS".

Il "-f" può anche essere usato:

$ awk -f ":" 'stampa $ 2' testfile2.TXT

Il separatore di record predefinito è "Newline" e per impostare il separatore record su ":", usa:

$ awk 'inizio rs = ":" print $ 1' testfile2.TXT

Azioni AWK:

Le azioni AWK sono piccoli programmi circondati da parentesi "" e hanno più di una dichiarazione separata da semi-colons ";";.

L'istruzione più usata con il comando "AWK" è l'istruzione "stampa". Ad esempio, per stampare un testo con ogni record, utilizzare la stringa di testo tra le citazioni:

$ awk '"The is a field", $ 2' Testfile.TXT

Eseguiamo un'operazione di somma semplice usando AWK:

$ awk 'sum += $ 4 end printf “%d \ n”, sum' testfile.TXT

Creare un programma AWK:

Cominciamo con la programmazione "AWK", la programmazione indicata di seguito sta semplicemente facendo la moltiplicazione:

INIZIO
i = 2
mentre (j<4)

Stampa "La moltiplicazione di 2 con" j "è" i*j;
J++

Salva il programma con il nome di "micode.Awk"E per eseguirlo, aprire terminale e tipo:

$ awk -f mycode.Awk

Conclusione:

Il comando "AWK" è un comando pratico per elaborare, scansionare i dati dei file di testo, come separare un particolare campo di un file; Usiamo il comando "awk". Semplifica la ricerca di qualsiasi cosa in qualsiasi forma o modello dai file di testo. In questa guida, comprendiamo le basi del comando "awk" e il suo utilizzo. Il comando "AWK" convalida i dati, genera report e persino file di analisi. L'uso di comandi semplici "awk" consente inoltre agli utenti di scrivere piccoli programmi per elaborare i dati in modo più efficiente.