awk Generatore di comandi
Genera comandi awk per la scansione di pattern e l'elaborazione del testo
Introduzione a awk
## Cos'è awk?
`awk` è un linguaggio di programmazione per l'elaborazione di testo. Analizza l'input riga per riga, divide ogni riga in campi ed esegue su di essi un programma di regole `pattern { action }`. Eccelle nell'estrazione di colonne, nei report tabellari e nell'aritmetica riga per riga.
## Come usarlo
1. **Inserisci il programma**: fornisci un programma `awk` come `{print $1}`. 2. **Imposta il separatore di campi** (facoltativo): `-F ','` per input CSV. 3. **Specifica il file**: inserisci il file da elaborare. 4. **Copia ed esegui**: copia il comando generato nel tuo terminale.
Sintassi del programma
Un programma `awk` è una sequenza di regole:
``` pattern { action } pattern { action } ```
### Variabili predefinite - `$0` — l'intera riga corrente - `$1`, `$2`, … — il 1°, 2°, … campo (diviso da `FS`) - `NF` — numero di campi nella riga corrente - `NR` — numero di riga corrente (su tutto il file) - `FS` — separatore di campi (predefinito agli spazi; impostabile via `-F`)
### Pattern speciali - `BEGIN { … }` — eseguito una sola volta prima di leggere qualsiasi input (utile per init/intestazione) - `END { … }` — eseguito una sola volta dopo aver consumato tutto l'input (utile per i totali)
### Esempi - `{print $1}` — stampa il primo campo di ogni riga - `{sum += $1} END {print sum}` — somma la prima colonna - `NR == 1 {next} {print}` — salta la riga di intestazione - `$3 > 100 {print $1, $3}` — stampa le righe in cui il terzo campo supera 100
### Quoting Racchiudi il programma tra singoli apici in modo che `$`, `{`, `}` non vengano interpretati dalla shell. Questo generatore gestisce il quoting per te.
▶Come analizzo un file CSV?
▶Come calcolo un totale progressivo?
Se questo strumento è stato di aiuto per te, considera l’idea di regalarmi un caffè.
Comprami un caffè.