2.2 KiB
2.2 KiB
grep e sed
Due comandi sono particolarmente adatti per manipolare file e dati di testo usando le RE: grep
e sed
.
grep
Il comando grep
permette di ricercare pattern nei file di testo, utilizzando le RE. Il carattere pipe |
e' usato per reindirizzare l'output di un comando direttamente allo stin di grep.
Alcune importanti opzioni:
-c
o--count
: invece di visualizzare i risultati di ricerca, visualizza solo il conteggio del numero di volte in cui si verifica una determinata corrispondenza-i
: nessuna distinzione tra maiuscole o minuscole-n
: mostra il numero di riga-v
o--invert-match
: seleziona solo le righe che non corrispondono alla ricerca-H
: stampa anche il nome del file-1
: viene inclusa una riga prima e una riga dopo la corrispondenza trovata. Queste righe aggiuntive sono chiamate righe di contesto.-E
o--extended-regexp
: equivalente al comandoegprep
, permette di utilizzare le funzionalita' delle RE estese.
sed
Permette di modificare i dati basati su testo in modo non interattivo. La sua sintassi di base:
sed -f SCRIPT
, quando le istruzioni sono memorizzate in un file SCRIPTsed -e COMMANDS
Esempi pratici
Partendo dal comando:
> factor `seq 12`
1:
2: 2
3: 3
4: 2 2
5: 5
6: 2 3
7: 7
8: 2 2 2
9: 3 3
10: 2 5
11: 11
12: 2 2 3
- Per eliminare la prima riga:
> factor `seq 12` | sed 1d
2: 2
3: 3
4: 2 2
5: 5
6: 2 3
7: 7
8: 2 2 2
9: 3 3
10: 2 5
11: 11
12: 2 2 3
- Per eliminare un intervallo di righe
> factor `seq 12` | sed 1,7d
8: 2 2 2
9: 3 3
10: 2 5
11: 11
12: 2 2 3
- E' possibile utilizzare piu' di un istruzione nella stessa esecuzione, separata da un
;
:
> factor `seq 12` | sed '1,7d;12d'
8: 2 2 2
9: 3 3
10: 2 5
11: 11
- Qualsiasi cosa inserita tra front-slash (
/
) e' considerata una RE. Invece di eliminare una riga, sed puo' sostituirla con un testo dato:
> factor `seq 12` | sed '/:.*2/c REMOVED'
1:
REMOVED
3: 3
REMOVED
5: 5
REMOVED
7: 7
REMOVED
9: 3 3
REMOVED
11: 11
REMOVED
- L'istruzione piu' usata:
s/FIND/REPLACE
. Solo la prima occorrenza verra' sostituita, a meno che non il flagg
non sia posto al termina dell'istruzione:s/FIND/REPLACE/g