L’utility Unixe Sed offre un modo efficace e versatile per eliminare una o più righe da un file disegnato per soddisfare le esigenze dell’utente. Questo comando Unix è usato per l’elaborazione della riga di comando e l’utility può essere utilizzata per eliminare espressioni da un file che è stato identificato da uno specifico delimitatore (come una virgola, un tab o spazio), da un numero di riga o ricercando una stringa, un’espressione o la posizione di una riga nella sintassi del Sed.
Ecco come rimuovere una o più righe da un file che usa Sed.
sed '{[/]<n>|<string>|<regex>[/]}d' <nomefile>
sed '{[/]<adr1>[,<adr2>][/]d' <nomefile>
/.../ = delimitatori;
n = numero della riga;
string = la stringa contenuta nella riga;
regex = espressione regolare che corrisponde al modello ricercato;
adr = indirizzo di una riga (numero o schema);
d = cancellare.
Ecco alcuni esempi per sapere come usare la sintassi precedente.
Usare il seguente codice per rimuovere la terza riga:
sed '3d' fileName.txt
Rimuovere la riga contenente la stringa “awk” utilizzando:
sed '/awk/d' filename.txt
Si può rimuovere l’ultima riga digitando:
sed '$d' filename.txt
O si può optare rimuovendo le righe vuote attraverso:
sed '/^$/d' filename.txt
sed '/./!d' filename.txt
Rimuovere la corrispondenza della riga con un’espressione regolare (eliminando quella contenente caratteri digitali e con almeno una cifra situata alla fine della riga):
sed '/[0-9/][0-9]*$/d' filename.txt
Eliminare l’intervallo tra le righe 7 e 9:
sed '7,9d' filename.txt
La stessa operazione precedente ma sostituendo l’indirizzo con parametri:
sed '/-Start/,/-End/d' filename.txt
Gli esempi precedenti sono cambiati alla visualizzazione del file (stdout1 = schermo).
Per avere modifiche permanente alla versione precedente (<4) utilizzare sul file temporaneo per GN sed utilizzando "-i[suffix]":
sed -i".bak" '3d' filename.txt
Foto: © Pixabay.