venerdì 16 marzo 2012

Eliminare le linee vuote con sed

Salve!

Può succedere nella vita di voler eliminare le linee bianche in un file di testo.

Posto che il file si trovi nella directory "Prova"

$ cd Prova

do il seguente comando:

$ sed -i '/^$/d' file.txt

Però può succedere pure di pentirsi dell'azione commessa. Magari non è questo il caso, ma non si sa mai.

Considerando che sed, con l'opzione -i, va ad incidere direttamente sul nostro file in modo indelebile (:D), conviene prendere le dovute precauzioni.

Io faccio così, aggiungo all'opzione "-i" il suffisso .bak

La riga di comando diventa:

$ sed -i.bak '/^$/d' file.txt

Così modificheremo file.txt, ma salveremo anche il file originario, che si farà chiamare, in questo caso, file.txt.bak.

Il file originario che è diventato file.txt.bak

Il file modificato, senza linee bianche.
 PS. Mi era venuto il dubbio se do (voce del verbo dare) si scrivesse con l'accento o meno. Sono andato su google, ho digitato "do" e, anzichè premere invio, ho dato uno spazio. Ed è successo il finimondo :D


Ciao :)

3 commenti:

  1. Oppure non specificando nessuna opzione :

    sed '/^$/d' nomefile

    In pratica le modifiche le vedrai sul terminale come se fosse una simulazione.

    RispondiElimina
  2. LOL per il giro con do ;-)
    bello il post ^ significa inizio della riga e $ fine quindi ^$ = riga vuota

    RispondiElimina
  3. Cavolo, lo avevo dato per scontato! Grazie Juhan, sei un tesoro :))

    RispondiElimina