Hier soir, Vivien me demandait quelles étaient les 5 astuces qui rendent mon système d’exploitation terrible. Après avoir présenté les possibilités de l’historique (history(3)), j’avais parlé de ce qui constitue un de mes éditeurs de choix : sed(1). Je vais en présenter rapidement quelques fonctions parmi les plus utiles :

  • sed -n 123p fichier : affiche la 123ème ligne d’un fichier.
  • sed -i.bak s/motif/remplacement/ fichier : effectue la substitution demandé, en gardant une sauvegarde sous la forme fichier.bak.
  • sed -i 12d fichier : efface la 12ème ligne
  • sed -i d/motif/ fichier : efface toute les lignes contenant motif.
  • sed -i -r 's/(^.*motif.*)/# \1/ fichier : commente les lignes contenant motif.
  • sed -n 148,150s/sd/hd/p fichier : devinez :)

Voilà :)

En fait, vous aurez remarqué que la substitution que je propose pour commenter les lignes n’est pas très élégante si appliquée à une partie d’un fichier (en utilisant les sélecteurs n,m. J’ai eu l’occasion de m’en rendre compte et je me suis décidé à opter pour cette substitution : sed -ir 's,^[^//](.*),// \1,'. Attention, dans mon cas de figure, le caractère permettant de mettre en commentaire étant /, pour éviter de l’échapper et de rendre le bazar illisible, j’ai opté pour l’utilisation de , comme séparateur.