Introduction au langage Sed

Méconnu des développeurs, Sed est un mini langage, spécialisé dans la transformation de fichiers textuels, qui vous rendra bien des services. Disponible d’office dans linux, il s’utilise dans un script ou comme filtre de la ligne de commande. Il a pour lui quelques atouts :

  • forte spécificité (il ne fait pas grand chose, mais il le fait bien)
  • performances excellentes (il existe depuis près de 40 ans)
  • stabilité/pérennité (on l’utilise toujours au bout de 40 ans)

Il possède par contre un gros défaut : si écrire un script Sed est rapide, la lecture est longue et pénible. Même les commentaires, quand il y en a, ne vous aiderons pas beaucoup. C’est peut-être pourquoi on l’utilise encore au bout de 40 ans ?

Syntaxe de base

Il faut donner au programme sed une commande à effectuer sur un fichier :

sed ‘commande’ fichier

Dans l’exemple suivant, la commande est vide. Il faut malgré tout utiliser les guillemets simples. Cette ligne de commande a pour effet d’afficher chaque ligne du fichier /etc/group. Vous pouvez bien sûr prendre pour cible un autre fichier. L’affichage des lignes est l’action par défaut de Sed.

$ sed '' /etc/group

Options

Une option très utile est l’option -n. Elle inhibe l’affichage par défaut. On pourra ainsi, plus tard, n’afficher que les lignes désirées. Si l’exemple suivant n’ affiche rien, c’est normal. Ce qui ne veut pas dire que Sed ne fait rien, mais juste qu’il n’affiche rien.

$ sed -n '' /etc/group

Commandes

Une commande Sed tient en un seul caractère. La commande p (print) affiche la ligne en cours de traitement. Il existe d’autres commandes que l’affichage. Par exemple la commande q (quit) provoque la fin du traitement. L’exemple suivant affiche les trois premières lignes du fichier. Il tire partie du comportement par défaut de Sed qui est l’affichage de la ligne. Lorsqu’il rencontre l’adresse 3, il execute la commande q, autrement dit le programme s’arrête. Les adresses seront décrites dans un prochain billet.

$ sed '3q' /etc/group

La suite

Dans les prochains billets, je traiterai des adresses, de la commande de substitution de texte, des scripts, etc.

Lire l’article suivant, Introduction au langage Sed 2 : Les adresses.

Références

Documentation de GNU sed http://www.gnu.org/software/sed/

FAQ de sed http://sed.sourceforge.net/sedfaq.html

Publicités

, , ,

  1. Poster un commentaire

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :