Impara Linux

Comando awk di Linux con 10 esempi

Comando awk di Linux con 10 esempi

I sistemi informatici sono sempre stati utilizzati per analizzare dati preziosi archiviati in semplici file di testo. A loro volta, i sistemi informatici stessi sono gestiti tramite file di registro. Ciò che è potenzialmente comune in queste due situazioni è che contengono una grande quantità di dati, che spesso devono essere semplificati prima di leggere effettivamente i dati; altrimenti, è solo confusione.

Ad esempio, se stai leggendo alcuni dati disposti in forma tabellare, vuoi alcune colonne, non ne vuoi altre.

Questo requisito era terribile anche in passato e, di conseguenza, il progetto GNU contiene uno strumento straordinario che aiuta gli utenti a filtrare ed estrarre i dati per un'esperienza migliore. Quello strumento è AWK.

Storia

AWK è in realtà un linguaggio di programmazione dedicato all'elaborazione del testo. Viene utilizzato per l'estrazione dei dati in modelli specifici. È stato sviluppato negli anni '70 dai Bell Labs, da Alfred Aho, Peter Weinberger e Brian Kernighan (le iniziali dei loro cognomi hanno dato origine al nome). Lo sviluppo di awk non si è fermato qui. Nel 1985 è stata introdotta una nuova versione, che ha apportato nuove modifiche al comando awk, inclusa la capacità di gestire più flussi di input, espressioni regolari calcolate, funzioni definite dall'utente e molto altro! In breve, l'aggiornamento lo ha reso un linguaggio di programmazione più potente.

Awk ha un'implementazione diversa. Per garantire che ci sia un'implementazione adeguata che offra un approccio standard, Paul Rubin scrisse gawk nel 1986. Ha funzionato bene con il nuovo awk.

Oltre a ciò, nel rilascio di System V del 1989, sono state aggiunte nuove funzionalità. Gli sviluppatori hanno anche migliorato i suoi angoli oscuri, rendendolo migliore per i programmatori e gli utenti nell'usarlo. L'ultimo cambiamento è avvenuto nel 1997 quando awk ha visto l'accesso alla rete, fornendo agli utenti la possibilità di risolvere i problemi da remoto.

L'ultima riscrittura fatta nel 2011 quando John Haque ha riscritto gli interni gawk.

Cose che puoi fare con AWK

A questo punto dovrebbe essere in qualche modo chiaro di cosa è capace AWK. È un linguaggio di scripting generico che consente di gestire l'elaborazione del testo. Gli utenti avanzati possono anche utilizzarlo per analisi e report.

AWK non è come gli altri linguaggi di programmazione in quanto è basato sui dati, piuttosto che un linguaggio di programmazione procedurale. Ciò significa che puoi usarlo efficacemente per eseguire azioni contro l'input di testo. In breve, puoi usarlo per trasformare i dati, inserirli e anche inviarli come output standard.

In breve, puoi usare AWK per eseguire semplici operazioni come dividere ogni riga di input in campi, scansionare un file riga per riga, eseguire una o più azioni sulle righe di corrispondenza e così via! Il comando awk è utile anche per i report formattati per procedura e trasforma i file di dati. Inoltre, puoi anche accedere a costrutti di programmazione come condizionali e cicli, stringhe e operazioni aritmetiche e formattare le linee di output.

Come funziona awk

In questa sezione, impareremo come funziona awk. È importante sapere che awk ha implementazioni diverse. Per garantire che siamo sulla stessa pagina, discuteremo e utilizzeremo l'implementazione GNU - che è popolarmente conosciuta come gawk. Nella maggior parte dei casi, gawk è collegato simbolicamente all'interprete awkk.

Per ottenere una buona comprensione, dobbiamo prima comprendere i record e i campi.

È risaputo che awk può elaborare flussi di testo e file di dati. Per elaborare i dati, l'input è suddiviso in campi e record. Per garantire che awk non venga sopraffatto, viene elaborato un record in un dato momento fino a raggiungere la fine dell'input. Inoltre, i record sono ulteriormente suddivisi in sezioni semplici utilizzando un separatore di record utilizzando caratteri. Inoltre, ogni record è separato utilizzando caratteri di nuova riga. Ciò significa che ogni riga può essere definita come un record.

Puoi scegliere di impostare un nuovo separatore di record usando la variabile RS.

Poi viene il separatore di file. Come al solito, ogni record ha campi e sono separati usando il separatore di campo. Il separatore di campo può essere spazi bianchi, tabulazioni, caratteri di nuova riga e spazio. Inoltre, ogni campo è referenziato utilizzando il simbolo $, mentre il numero del campo inizia con 1. Ciò significa che il primo campo può essere indicato come $1 mentre il secondo campo è indicato come $2. In questo modo, l'ennesimo campo può essere indicato come $nf.

Il programma imbarazzante

Il secondo aspetto di awk è il programma awk. Se vuoi lavorare con awk, devi scrivere un programma che permetta al comando di eseguire o elaborare il testo. Il programma awk offre molte funzionalità utilizzando regole e funzioni definite dall'utente. Le regole funzionano con una coppia di azioni o un modello e le regole sono separate da punto e virgola o newline.

Nel caso ve lo stiate chiedendo, un programma awk apparirà come di seguito.

modello  azione  modello  azione .. 

In breve, il programma awk funziona abbinando i record in base a modelli. Se il modello viene trovato nel record, lo elaborerà. In caso contrario, viene abbinato l'intero record per assicurarsi che qualcosa corrisponda in base alle regole.

Esempi di comandi awk

Ora che abbiamo una buona comprensione del comando awk e di come funziona, è giunto il momento di dare un'occhiata ad alcuni degli esempi di comando awk.

Se non hai mai usato awk prima, potresti voler sapere che awk può essere utilizzato con opzioni come di seguito:

file di programma delle opzioni awk

Le opzioni che puoi usare con awk includono quanto segue:

Esempio 1: leggere gli script AWK

Uno dei modi più comuni di usare awk è leggere gli script. Come utente Linux, puoi creare uno script awk usando le virgolette singole.

Per fare ciò, è necessario digitare il seguente comando nel terminale.

$awk 'print "Benvenuto in Hello, World -- Tutorial AWK"'

Nell'esempio sopra, ciò che digiti, verrà restituito allo schermo stesso. Il comando continuerà a essere eseguito fino a quando non lo termini premendo CTRL + D.

Esempio 2: utilizzo di più comandi

Un altro uso comune di awk è usare più comandi. Come utente, potresti voler combinare due comandi awk in uno per ottenere il risultato desiderato. In questo esempio, produrremo una stringa e quindi sostituiremo la seconda parola nella stringa con un nuovo input.

$echo "Ciao Mondo" | awk '$2 = "Universo; stampa $0"'

Nell'esempio sopra, abbiamo prima fatto eco, "Hello, World" al terminale. Successivamente, abbiamo concatenato un altro comando awk in cui abbiamo sostituito la seconda parola con Universe - e infine abbiamo generato la stringa, che è Hello Universe.

Esempio 3: utilizzo della variabile

Le variabili ti consentono di memorizzare informazioni e accedervi. Se hai già usato linguaggi di programmazione, sicuramente li conosci. Nel caso di awk, lo usi per elaborare file di testo. Usando le variabili, puoi accedere a determinati campi di dati all'interno del file proprio come di seguito.

A questo scopo, abbiamo creato un nuovo file di testo, mynewfile, in cui inseriamo alcune linee casuali ma belle.

Successivamente, è necessario eseguire il comando, come mostrato di seguito.

awk 'print $1' mionuovofile

Come puoi vedere, emette quella particolare variabile che mostra quel campo dal file. Inoltre, dovresti vedere l'errore che ho fatto.

Esempio 4: pre-elaborazione AWK

Con il comando awk, puoi aggiungere la preelaborazione. Per fare ciò, è necessario utilizzare la parola chiave BEGIN.

Se stai leggendo attentamente, abbiamo creato un nuovo file sopra. Proviamo a usare la pre-elaborazione awk per mostrare il contenuto del file.

Il comando per questo è il seguente.

awk 'awk BEGIN print "Il contenuto del file:" > print $0' , mionuovofile

Lo screenshot di esempio sopra non è corretto. Ho usato "Begin" invece di "BEGIN", motivo per cui non vedi l'istruzione print eseguire. Lascio questo per te da provare e vedere come va il tuo risultato!

Esempio 5: lettura dello script da file

Questo è complicato. Qui puoi usare lo script awk per leggere un file.

Creiamo un nuovo script che contiene quanto segue.

print $1 "l'universo inizia da " $6"

Abbiamo salvato il file come nuovo script.

Ora, esegui il seguente comando sul terminale.

$awk -F: -f nuovoscript /etc/passwd

Affascinante, vero?!

Esempio 6: post-elaborazione AWK

Successivamente, diamo un'occhiata alla post-elaborazione AWK. Funziona in modo simile alla pre-elaborazione, ma questa volta la post-elaborazione utilizza il comando END.

$ awk 'BEGIN print "Il contenuto del file inizia ora:" > > print $0 > > END print "Il file finisce"' mynewfile

Esempio 7: variabili definite dall'utente

Puoi anche usare le variabili all'interno del comando awk senza usare un numero o il simbolo del dollaro.

Di seguito è riportato un esempio.

$awk ' BEGIN test = "Benvenuto nella fantastica famiglia Linux di FossLinux" print test  '

Esempio 8: funzioni integrate

Anche i comandi awk sono utili con le loro funzioni integrate. Ad esempio, puoi usare funzioni matematiche e anche funzioni String.

$ awk 'BEGIN x - "fossLinux"; stampa toupper(x)'
$ awk 'INIZIA x=exp(35); stampa x'

Esempio 9: formattazione della stampa

Puoi anche formattare la funzione printf fornita con awk. Ci sono molti modificatori che puoi usare. Ad esempio, puoi usare c per stampare come una stringa; puoi anche usare d per un valore intero e così via.

$ awk 'BEGIN  x = 200 * 200 printf "Il risultato è: %e\n", x '

Esempio 10: comandi strutturati

Puoi anche usare comandi strutturati come if, else, while o for loop. Vediamo l'esempio seguente per il comando if.

$ awk 'if ($1 > 20) print $2' mionuovofile

Conclusione

Questo ci porta alla fine del nostro tutorial sui comandi awk. Quindi, l'hai trovato utile e lo utilizzerai per il tuo lavoro?? Commenta sotto e facci sapere.

Rimappa i pulsanti del mouse in modo diverso per software diversi con X-Mouse Button Control
Forse hai bisogno di uno strumento che possa cambiare il controllo del tuo mouse con ogni applicazione che utilizzi. In questo caso, puoi provare un'a...
Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...
Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...