Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste [28/07/2014 11:39] Hypathie [Introduction] |
utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste [28/07/2014 12:41] Hypathie [La commande s] |
||
---|---|---|---|
Ligne 45: | Ligne 45: | ||
<code> | <code> | ||
- | sed [-n [-e commande] [-f script] [-i[.extension]] [l [cesure]] rsu] [<commande>] [<fichier(s)>] | + | sed [-n [-e commande] [-f script] [-i[.extension]]\ |
+ | [l [cesure]] rsu] [<commande>] [<fichier(s)>] | ||
</code> | </code> | ||
Ligne 545: | Ligne 546: | ||
^ ^ ^ | ^ ^ ^ | ||
|g | global : toutes les occurrences | | |g | global : toutes les occurrences | | ||
- | |w | écrire les substitutions effectuées dans un fichier | | + | |n | la nième occurrence d'une ligne | |
|p | afficher la ligne modifiée | | |p | afficher la ligne modifiée | | ||
+ | |w | écrire les substitutions effectuées dans un fichier | | ||
|e | exécution d'une commande | | |e | exécution d'une commande | | ||
|I | ignorer la casse | | |I | ignorer la casse | | ||
|M | correspondance de E.R.\\ (implémentation GNU, non portable) | | |M | correspondance de E.R.\\ (implémentation GNU, non portable) | | ||
+ | |||
+ | ===g ; n et p === | ||
+ | * substituer toutes les occurrences de motif | ||
+ | <code text sed-coincoin.txt> | ||
+ | coin | ||
+ | coin | ||
+ | foobar | ||
+ | barbar | ||
+ | coincoin babar coincoin | ||
+ | </code> | ||
+ | |||
+ | <code user> | ||
+ | sed 's/coincoin//g' sed-coincoin.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | coin | ||
+ | coin | ||
+ | foobar | ||
+ | barbar | ||
+ | babar | ||
+ | </code> | ||
+ | > Sans ''g'', seul le "coincoin" à gauche de "babar" aurait été substitué par un espace. | ||
+ | |||
+ | * Substituer l'occurrence d'une ligne | ||
+ | |||
+ | <code user> | ||
+ | sed '/babar/s/coin//3' sed-coincoin.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | coin | ||
+ | coin | ||
+ | foobar | ||
+ | barbar | ||
+ | coincoin babar coin | ||
+ | </code> | ||
+ | |||
+ | * Afficher sur la sortie standard la substitution : | ||
+ | <code user> | ||
+ | var="ligne1\nligne2\nligne3\nligne\nligne5" | ||
+ | </code> | ||
+ | <code user> | ||
+ | echo -e "$var" | sed '4 s/e/e4/p' | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | ligne1 | ||
+ | ligne2 | ||
+ | ligne3 | ||
+ | ligne4 | ||
+ | ligne4 | ||
+ | ligne5 | ||
+ | </code> | ||
+ | |||
+ | > Le doublon est dû à l'affichage du cache, auquel s'ajoute l'affichage de la substitution. | ||
+ | > Il faut utiliser l'option sed -n : | ||
+ | |||
+ | <code user>echo -e "$var" | sed -n '4 s/e/e4/p'</code> | ||
+ | |||
+ | ligne4 | ||
+ | |||
+ | === w écrire=== | ||
+ | <code user> | ||
+ | sed -n 's/barbar/babar/pw fichier-barbar' sed-coincoin.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | babar | ||
+ | </code> | ||
+ | <code user> | ||
+ | cat fichier-barbar | ||
+ | </code> | ||
+ | <code> | ||
+ | babar | ||
+ | </code> | ||
+ | |||
+ | === e : exécution d'une commande=== | ||
+ | <code user> | ||
+ | sed 's/barbar/date/e' sed-coincoin.txt | ||
+ | </code> | ||
+ | <code> | ||
+ | coin | ||
+ | coin | ||
+ | foobar | ||
+ | lundi 28 juillet 2014, 12:32:20 (UTC+0200) | ||
+ | coincoin babar coincoin | ||
+ | </code> | ||
+ | |||
+ | ===I : ignorer la casse === | ||
+ | <code user> | ||
+ | var="COINcoin\nbabar\ncoinCOIN\nbabar\ncoincoin" | ||
+ | </code> | ||
+ | <code user> | ||
+ | echo -e "$var" | sed 's/coincoin/tointoin/Ig' | ||
+ | </code> | ||
+ | <code> | ||
+ | tointoin | ||
+ | babar | ||
+ | tointoin | ||
+ | babar | ||
+ | tointoin | ||
+ | </code> | ||
+ | |||
====Les indicateurs spéciaux==== | ====Les indicateurs spéciaux==== |