Cancellare righe con sed

Nel processo di migrazione a Hugo dovevo modificare in tantissimi file di testo alcune righe, un po’ come già successo qui. Oggi dovevo cancellare dal Front matter alcune righe. Un lavoro noiosissimo da fare a mano.

Cancellare una riga soltanto

Dovevo cancellare la riga contenente questa stringa:

url: /vecchio/indirizzo/da/cancellare

Mi è bastato questo comando di sed:

sed -i '/url:/d' *.md

Cancellare una riga e la successiva

In questo caso la situazione è un po’ più complessa. Le righe da cancellare erano queste due:

dsq_thread_id:
  - 123456789

Come si vede, bisognava cancellare ben due righe. Anche in questo caso sed mi è stato di prezioso aiuto. Questo programma, tra le sue funzioni, ha proprio quella di cancellare una riga corrispondente a quello che si cerca più la successiva.

Ecco quindi il glorioso comando:

sed -i '/dsq_thread_id/{N;d;}' *.md

Anche in questo caso non credo ci sia bisogno di spiegazioni.

aldolat

Il blocco note di Aldo.


Come cancellare righe da file di testo usando sed.