Eliminare righe da un file che usa Sed

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.

Sed: cancellare una o più righe da un file

Ecco come rimuovere una o più righe da un file che usa Sed.

Sintassi

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.

Esempi di Sed

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.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Il documento intitolato « Eliminare righe da un file che usa Sed » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.