La filosofia di Unix/Linux si basa sulla manipolazione di file di testo. `grep`, `sed` e `awk` sono tre strumenti a riga di comando, presenti su ogni sistema, che formano un set di tool potentissimo per l'elaborazione di testo.
`grep`: Trovare le Righe
`grep` (Global Regular Expression Print) scansiona un input (un file o l'output di un altro comando) e stampa le righe che contengono una corrispondenza con un pattern (una stringa o un'espressione regolare).
- Uso: Trovare righe specifiche in un file di log, cercare file che contengono una certa funzione, filtrare l'output di altri comandi.
- Esempio: Trovare tutte le righe che contengono la parola "error" nel file `server.log`.
grep "error" server.log
`sed`: Modificare le Righe
`sed` (Stream Editor) è un editor di testo non interattivo. Legge l'input riga per riga, applica una o più trasformazioni e stampa il risultato. È perfetto per operazioni di "cerca e sostituisci".
- Uso: Sostituire del testo in un file, eliminare righe, aggiungere contenuto.
- Esempio: Sostituire tutte le occorrenze di "http" con "https" in un file.
sed 's/http/https/g' mio_file.html
`awk`: Estrarre e Manipolare le Colonne
`awk` è molto più di un semplice tool di testo, è un vero e proprio linguaggio di programmazione. La sua forza è quella di processare l'input riga per riga e di dividere ogni riga in "campi" (colonne). È lo strumento ideale per estrarre dati da file strutturati (come i CSV o l'output di comandi come `ls -l`) e per generare report.
- Uso: Estrarre colonne specifiche da un file, calcolare somme o medie, riformattare l'output.
- Esempio: Dall'output di `ls -l`, stampare solo i permessi (colonna 1) e il nome del file (colonna 9).
ls -l | awk '{print $1, $9}'
La vera potenza di questi strumenti si scatena quando vengono combinati tra loro usando la pipe (`|`), permettendo di creare complesse pipeline di elaborazione dati direttamente dalla riga di comando.
Hai bisogno di una soluzione su misura?
Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.
Richiedi una consulenza