Newer
Older
cours-unix-shell / sed / tp.md

Travaux pratiques - Sed - UNIX

Utilisation simple

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

Voir la solution bash 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.

Voir la solution bash sed -f decalage.sed bash # 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 :.

Voir la solution bash 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>>.).

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

Précédent - Suivant