Come cancellare una linea da un file di testo usando sed


Linux tips

Linux tips – Photo by JPPI, 2015, MorgueFile.com

Supponi di stare usando GNU/Linux o FreeBSD.

Supponi di avere un file di testo.

Supponi di voler cancellare tutte le linee di testo che contengono uno specifico testo da questo file.

Supponi di non conoscere su quale linea si trovi, o supponi di avere molte occorrenze di questo testo.

La soluzione sotto BASH è semplice. Usa: SED.

Digita:

sed -i "/testo-che-voglio-rimuovere/d" /percorso/al/file

Dove testo-che-voglio-rimuovere è il testo contenuto sulle linee che vuoi rimuovere e  /percorso/al/file è il percorso assoluto del file su cui vuoi operare.

testo-che-voglio-rimuovere può contenere anche spazi. La procedura è la stessa.

Col comando illustrato modificherai direttamente il file originale.

Supponi, invece, di voler mantenere il file originale a di volere un nuovo file identico al precedente, ma senza le linee che vanno cancellate.

Allora digita:

sed "/testo-che-voglio-rimuovere/d" /percorso/al/file > nuovo-file

Dove nuovo-file è il file di testo (nella directory corrente) senza le linee che contenevano testo-che-voglio-rimuovere.

È tutto.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

This site uses Akismet to reduce spam. Learn how your comment data is processed.