Top 10 interessanti comandi awk

Top 10 interessanti comandi awk
Questo articolo ti eseguirà attraverso alcuni interessanti comandi awk e quando usarli. Continuate a leggere per scoprirlo!

Introduzione ad Awk

AWK è una lingua popolare in Unix e Linux. Ha preso il nome dai suoi autori: Alfred Aho, Peter Weinberger e Brian Kernighan. Il comando AWK consente l'accesso al linguaggio di programmazione AWK, progettato per elaborare i dati all'interno dei flussi di testo.

Popolarmente utilizzato per i modelli di scansione e semplificare le operazioni complesse, AWK ti aiuta a scrivere dichiarazioni efficaci per definire i modelli di testo in un file. Il comando AWK elabora quindi queste affermazioni leggendo una riga alla volta e intraprende un'azione in base alla condizione data.

In poche parole, Awk trova e sostituisce il testo e aiuta a ordinare, convalidare o indicizzare i dati dati.

Caratteristiche di AWK

Awk viene fornito con molte caratteristiche uniche:

  1. Nessuna raccolta è necessaria in AWK
  2. Spesso utilizzato per l'estrazione dei dati
  3. Comunemente usato per eseguire la manipolazione del testo
  4. Aiuta a generare risultati secondo necessità.

Ora esploriamo il potere dei comandi Awk.

15 comandi Awk interessanti

Ecco un elenco compilato di alcuni interessanti comandi AWK:

  1. Stampa numeri casuali in un set - Supponiamo di voler stampare alcuni numeri casuali da un pool selezionato. Puoi specificare la quantità di numeri casuali da questo pool e chiedere a AWK di stampare questo. Ecco un esempio: stampiamo 10 numeri da 0 a 1000. Quindi il comando awk per questo sarà il seguente: awk 'inizio per (i = 1; i <= 10; i++)
    print int (1001 * rand ()) '
  1. Alla ricerca di foo o bar - E se vuoi scrivere una riga in cui vuoi eseguire una semplice ricerca per foo o bar? Ecco un comando che ti permetterà di fare proprio questo: se (/foo/||/bar/)
    Stampa "trovato!"
  1. Riorganizzare un campo - Se vuoi stampare un campo particolare in un ordine particolare, Awk può farlo per te. Supponiamo di voler stampare i primi 5 campi di un set particolare in un campo per riga, è possibile utilizzare il seguente comando: awk 'i = 1
    mentre io <= 3)
    Stampa $ i
    io++

    ' file di input
  1. Dividere una linea - In ogni determinato set di file, AWK può aiutare a dividere una riga in campi, dove x è il nome del campo: $ awk 'print $ x, $ x' xyz.TXT
  1. Esegui diversi comandi contemporaneamente - Per eseguire diversi comandi contemporaneamente, è possibile utilizzare un punto e virgola per specificare entrambi i comandi: $ echo "buongiorno! Jack "| awk '$ 2 =" Jill "; stampa $ 0'
  1. Esecuzione di uno script Awk - Se si desidera eseguire uno script AWK da un determinato file, è possibile creare un file sum_column e incollare lo script di seguito in quel file: #!/usr/bin/awk -f
    Inizia sum = 0
    sum = sum+$ x
    End print Sum

    Nello script sopra, x è uguale alla colonna è necessario inserire nel file. Al completamento con successo di questa attività, è possibile utilizzare il comando seguente per visualizzare la somma della colonna X nel file di input:

    awk -f sum_column input_file.
  1. Usando -f - Durante la codifica, può spesso sembrare poco pratico fare riferimento al terminale. Awk usa -F per eseguire la ricerca da un file: sceneggiatura awk -f.awk inputfile
  1. Eseguire funzioni matematiche - Puoi anche usare AWK per semplici funzioni matematiche: awk 'sum = $ 2 + $ 3 + $ 4; Avg = Sum / 3
    > Stampa $ 1, Avg 'voti
  1. Hello World in Awk - Puoi stampare un semplice Hello World in Awk usando il seguente comando: awk "inizia stampa" Hello World!!""

    Puoi anche creare un programma Hello World. Il seguente codice non solo stamperà l'onnipresente messaggio Hello, ma genererà anche informazioni sull'intestazione:

    $ awk 'inizio stampa "ciao mondo!" '
  1. Stampa il numero totale di byte - Puoi scoprire i byte totali utilizzati dai file utilizzando il seguente comando: LS -l . | awk 'x += $ 5; FINE \
    Stampa "Byte totali:" x '
    Byte totali: 7449362
  1. Anonimizzare un registro Apache - È possibile utilizzare il seguente codice per anonimo un registro Apache: Cat Apache-Anon-Noadmin.registro | \
    funzione awk 'ri (n) \
    return int (n*rand ()); \
    Inizio srand (); Se (! \
    ($ 5 in jack)) \
    Jack [$ 5] = sprintf ("%d.%D.%D.%D", \
    ri (255), ri (255) \
    , ri (255), ri (255)); \
    $ 5 = Jack [$ 5]; Stampa __g5_token5b610ba53dbe4 '
  1. Operando in righe - Se hai un indirizzo che desideri ordinare in righe, puoi farlo usando il seguente comando: inizia rs = ""; Fs = "\ n"

    Stampa "Il nome è:", $ 1
    Stampa "L'indirizzo è:", $ 2
    Stampa "City and State sono:", $ 3
    stampa ""
  1. Usando il ciclo while - Il ciclo while continua a eseguire l'azione data in un processo ripetuto fino a quando la condizione è vera. Ad esempio, per i numeri di stampa da 1 a 100, è possibile utilizzare il seguente codice: Awk 'inizio i = 1; mentre io < 100) print i; ++i '
  1. Usando il ciclo do-while - In questo ciclo, la condizione viene eseguita alla fine del ciclo anche se l'affermazione è falsa. Ad esempio, per stampare i numeri da 1 a 100 usando un ciclo do-while, è possibile utilizzare il seguente codice: awk 'inizio i = 1; do print i; ++ i while (i < 100) '
  1. Usando inizio e fine - La parola chiave iniziale viene utilizzata per creare un'intestazione per l'elaborazione del record: $ awk 'inizio stampa "xxx"

    Allo stesso modo, la parola chiave finale viene utilizzata dopo l'elaborazione dei dati:

    End stampa "file footer" '

Questo conclude l'elenco di 15 interessanti comandi Awk. Puoi provarli e vedere i risultati. Spero che tu lo trovi utile. Se hai trovato questo articolo interessante, puoi esplorare Mastering Linux Shell Scripting - Seconda edizione. In questo libro, scoprirai tutto ciò che devi sapere per padroneggiare lo scripting di shell e fare scelte informate sugli elementi che impieghi.