Les vrais développeurs utilisent ed !

Posté par (page perso) . Édité par Nÿco, Lucas Bonnet, Manuel Menal, Malicia et Xavier Claude. Modéré par patrick_g. Licence CC by-sa
Tags :
36
4
jan.
2012
Ligne de commande

Certains logiciels font parti de la tradition UNIX. C'est, par exemple, le cas de l'éditeur de texte ed. Écrit par Ken Thompson (OS UNIX, Plan 9 et les langages B et Go), il a marqué une étape importante pour les expressions rationnelles. Avant cette implémentation, le concept des expressions rationnelles n'était formalisé que dans des publications mathématiques, que Ken Thompson avait lues.

GNU ed, l'implémentation de l'éditeur ed par le projet GNU, sous licence GPL, est sorti en version 1.6 hier.

GNU ed is an 8-bit clean, more or less POSIX-compliant implementation of the standard Unix line editor.

xkcd: Real Programmers

Licence Creative Commons Attribution-NonCommercial 2.5

Pour les non-connaisseurs, ed fonctionne en mode command (sans invite) et en mode input (que l'on termine par un .). Il est proche des commandes Unix sed et grep, ou encore awk, dans l'utilisation des expression rationnelles.

Voici un exemple de session :

$ ed coucou_linuxfr.org
coucou_linuxfr.org: Aucun fichier ou dossier de ce type
a
Bonjour à tous,

Voici ed !
.
w
29
q
$ ll coucou_linuxfr.org 
-rw-r--r-- 1 nyco nyco 29 2012-01-03 23:21 coucou_linuxfr.org
$ 

Un autre exemple, qui démontre l'utilisation de la commande d (delete, suppression de lignes) pour supprimer la ligne 200, puis les lignes 1 à 400 d'un fichier texte :

$ wc -l big.txt
496 big.txt
$ ed big.txt
174592
200d
w
173943
q
$ wc -l big.txt
495 big.txt
$ ed big.txt
173943
1,400d
w
34992
q
$ wc -l big.txt
95 big.txt

Voici les nouveautés apportées par cette version 1.6 :

  • l'affichage des caractères NULL avec la commande l a été corrigé ;
  • la condition à laquelle le message « Nouvelle ligne ajoutée » apparaît a été corrigée ;
  • l'indicateur « modifié » apparaît désormais lorsque l'on effectue la lecture d'un fichier non vide dans un espace-tampon vide ;
  • une erreur qui empêchait d'utiliser des caractères NUL dans les expressions rationnelles a été corrigée ;
  • ed signale désormais une erreur s'il ne peut pas lancer un shell quand l'utilisateur exécute une commande shell ;
  • ed vide le cache de la sortie standard (stdout) et de la sortie d'erreur standard (stderr) avant de lire une nouvelle commande ;
  • la page de manuel est désormais générée à l'aide de help2man. Toutes les options en ligne de commande y sont désormais documentées.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.