Introduzione a Awk Command

Noțiuni introductive despre comanda Awk
⏱️ 4 min read

Awk è un potente linguaggio di programmazione per l’elaborazione dei dati integrato in quasi tutti i sistemi * nix. Sembra un linguaggio di programmazione generico in superficie, ma è costruito per ricevere input ed eseguire azioni basate su quell’input. Se è necessario elaborare il testo in base a determinate condizioni, awk quasi sempre porterà a termine il lavoro più rapidamente di un linguaggio generico come C. Viene anche interpretato, quindi si evita il lungo processo di compilazione e debugging dei linguaggi compilati.

Fatto extra divertente: lo strano nome del programma è un inizialismo dei nomi dei suoi programmatori: Alfred UNoh, Peter Weinberger e Brian Kernighan

Sintassi di base di Awk

Quando viene richiamato dalla riga di comando, awk segue lo schema di base seguente:

Awk eseguirà l’azione ogni volta che il pattern trova corrispondenza all’interno del file specificato. Se non specifichi un file, awk verrà eseguito sullo standard output. Quando si confrontano i modelli, awk può accettare sia espressioni regolari che input programmatico. Consideriamo questo esempio di base di seguito:

Questo programma di una riga stamperà ogni riga dal file “email” che contiene i caratteri com. In awk $0 si riferisce alla riga corrente, che è anche il comportamento predefinito. La riga avrebbe potuto essere scritta senza $0, e avrebbe funzionato in modo identico.

Campi di stampa

Poiché awk può identificare e analizzare i separatori di campo, è utile per stampare colonne o righe di dati specifiche. Useremo il file “/ etc / passwd” per questo esempio.

awk-comando-come iniziare-2

Questo programma di una riga fa alcune cose. La bandiera -F indica che il carattere successivo (: in questo esempio) dovrebbe essere interpretato come separatore di campo. Awk them stampa il primo campo, specificato da $1.

Possiamo anche stampare più di un campo alla volta specificando i campi in sequenza:

Produrrà un output simile al seguente.

awk-command-getting-started-4

Questo stampa il quarto e il quinto campo del file passwd file con uno spazio tra di loro. Nota che lo spazio è tra virgolette doppie. Questo lo specifica come carattere letterale all’interno del comando print, quindi viene stampato come scritto. Possiamo anche aggiungere letterali più complicati per ripulire il nostro output:

awk-comando-come iniziare-5

Questo stamperà l’output con le etichette per l’identificazione. E possiamo produrre tutto questo in un nuovo file usando un accento circonflesso (>).

Possiamo combinare ciò che sappiamo finora per elaborare i dati in modo estensivo. Ad esempio, è possibile utilizzare espressioni regolari per stampare tutte le righe di un documento che contiene un numero di telefono statunitense valido.

Espansione della potenza di corrispondenza del comando Awk

Awk può anche elaborare le informazioni utilizzando una varietà di operandi. Questo include operandi standard come ==, <, >, <=, >=, e !=, così come operandi specifici di awk ~ e !~, che significano rispettivamente “corrisponde” e “non corrisponde”. Questi operandi vengono utilizzati quando si confrontano espressioni regolari con la logica booleana, nonché frasi programmatiche più standard.

Esempi di comandi Awk

Stampa tutte le righe più lunghe di ottanta caratteri nel file “dati”. Notare la mancanza di un’istruzione print: in assenza di un’azione specificata, awk stamperà l’intera riga ogni volta che un pattern corrisponde.

Stampa tutte le righe in cui il primo campo è uguale alla stringa “utente”. Senza un file -F flag, awk utilizzerà lo spazio bianco come separatore di campo predefinito. Inoltre, nota che awk e il file non sono specificati. Questo è per l’uso negli script in file separati, come spiegato di seguito.

Stampa il terzo campo ogni volta che il quinto campo corrisponde all’espressione regolare /root/.

Quando il campo 5 non corrisponde /root/, stampa campo tre. Questo utilizza il C-like if dichiarazione, che è anche compatibile con awk. Questo formato consente una maggiore flessibilità per i programmatori che hanno familiarità con i linguaggi generici.

Salvataggio di script in file

Gli script Awk possono anche essere salvati in file che consentono di salvare programmi più complessi:

Quando si utilizza il -f flag, awk esegue lo script nel percorso file specificato, ovvero program.awk. I comandi in quel programma elaboreranno il file “dati”.

Le azioni possono essere eseguite anche prima e dopo il programma, utilizzando BEGIN e END:

Come puoi vedere sopra, il file # Il simbolo inizia un commento, che dura fino alla fine della riga.

Conclusione

Questa guida tocca solo gli elementi di base di awk. C’è molto di più da costruire ed esplorare oltre a questo. Esamina il file Documentazione GNU per awk o Il linguaggio di programmazione Awke il libro di testo awk scritto dagli sviluppatori del programma.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar di Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Potrebbero interessarti anche...

Subscribe
Notificami
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x