TP sed - UNIX

Utilisation simple

Écrivez une commande sed transformant la chaîne moins en plus. Appliquez-la à Vous aurez moins de budget.

Cacher la solution
sed -e 's/moins/plus/g'

Utilisation d'un fichier de commandes

Écrivez un commande sed transformant toutes les lettres minuscules en leur suivante lexicographique (cas particulier : z se transforme en !). Rappel : vous pouvez utiliser un fichier pour rassembler plusieurs commandes sed.

Cacher la solution
sed -f decalage.sed
# fichier "decalage.sed"
s/z/!/g
s/y/z/g
s/x/y/g
s/w/x/g
s/v/w/g
s/u/v/g
s/t/u/g
s/s/t/g
s/r/s/g
s/q/r/g
s/p/q/g
s/o/p/g
s/n/o/g
s/m/n/g
s/l/m/g
s/k/l/g
s/j/k/g
s/i/j/g
s/h/i/g
s/g/h/g
s/f/g/g
s/e/f/g
s/d/e/g
s/c/d/g
s/b/c/g
s/a/b/g

Cette solution peut sembler étrange, car les substitutions ne se font pas dans l'ordre alphabétique mais dans l'ordre alphabétique inverse. C'est nécessaire car sinon tous les a se transforment en b, puis tous les b (y compris ceux qui sont nouvellement transformés) en c, etc., pour finir par un texte intégralement composé de lettres a.

Substitution en début de ligne

Écrivez une commande sed qui affiche uniquement le début de chaque ligne du fichier /etc/passwd jusqu'au premier caractère :.

Cacher la solution
sed -e 's/^\([^:]*\).*$/\1/' /etc/passwd

On aurait pu aussi utiliser la commande cut.

Substitution dans toute la ligne

Écrivez une commande sed qui remplace les couples de guillemets anglais par un couple de guillemets français (Ceci est un "exemple" qui doit "fonctionner". doit donner Ceci est un <<exemple>> qui doit <<fonctionner>>.).

Cacher la solution
sed -e 's/"\([^"]*\)"/<<\1>>/g'

Philippe.Houdry@inist.fr