logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:35]
Hypathie [La commande s]
utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste [28/07/2014 12:47]
Hypathie [Commandes indiquant en elle-même un adressage sed]
Ligne 45: Ligne 45:
  
 <​code>​ <​code>​
-[options/​adressage/​cmd_de_sed ​[options_cmd_de_sed]+sed [-n [-e commande] [-f script] [-i[.extension]]\ 
 + [l [cesure]] rsu] [<​commande>​] [<​fichier(s)>​]
 </​code>​ </​code>​
- 
-//Ce que j'​appelle là "​options_cmd_de_sed"​ est appelé selon la documentation "​drapeaux",​ ou "​options",​ ou encore "​indicateur"​. Elle dépend de la connaissance des commandes de sed.// 
  
 -> La compréhension de la documentation et le fonctionnement global de sed sont facilités lorsque l'on maîtrise un double rapport d'​implications :\\  -> La compréhension de la documentation et le fonctionnement global de sed sont facilités lorsque l'on maîtrise un double rapport d'​implications :\\ 
Ligne 485: Ligne 484:
 ====Méthodes d'​appel==== ====Méthodes d'​appel====
 <​code>​ <​code>​
-s/​motif/​substitut/​[options_cmd_de_sed] fichier+s/​motif/​substitut/​[options_de_s] fichier
 </​code>​ </​code>​
 ou ou
 <​code>​ <​code>​
-cmd | s/​motif/​substitut/​[options_cmd_de_sed]+cmd | s/​motif/​substitut/​[options_de_s]
 </​code>​ </​code>​
  
Ligne 507: Ligne 506:
 ====Détail : la ligne de commande "​s"​==== ====Détail : la ligne de commande "​s"​====
 <code c> <code c>
-  s/​expression1/​expression2/​[options_cmd_de_sed]+  s/​expression1/​expression2/​[options_de_s]
 </​code>​ </​code>​
 ===les séparateurs ( / )=== ===les séparateurs ( / )===
Ligne 547: Ligne 546:
 ^  ^  ^ ^  ^  ^
 |g | global : toutes les occurrences | |g | global : toutes les occurrences |
-|écrire les substitutions effectuées dans un fichier ​|+|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====
Ligne 973: Ligne 1074:
 Si un fichier du même nom existe déjà, il sera écrasé sans avertissement ni confirmation et ce à chaque invocation du script.\\ ​ Si un fichier du même nom existe déjà, il sera écrasé sans avertissement ni confirmation et ce à chaque invocation du script.\\ ​
 Si plusieurs instructions de la commande "​w"​ sont appelées à écrire dans un même fichier depuis un script, chaque écriture est ajoutée à la fin du fichier. Si plusieurs instructions de la commande "​w"​ sont appelées à écrire dans un même fichier depuis un script, chaque écriture est ajoutée à la fin du fichier.
- 
-====Exemples==== 
  
 ===créer un fichier avec sed et echo :=== ===créer un fichier avec sed et echo :===
 <code user> <code user>
 echo "​contenu d'un fichier créé"​ | sed 'w fichier-sed-cree'​ echo "​contenu d'un fichier créé"​ | sed 'w fichier-sed-cree'​
 +</​code>​
 +<​code>​
 +contenu d'un fichier créé
 +</​code>​
 +<code user>
 +cat fichier-sed-cree
 </​code>​ </​code>​
 <​code>​ <​code>​
utilisateurs/hypathie/tutos/sed-par-la-methode-structuraliste.txt · Dernière modification: 13/11/2014 09:31 par Hypathie

Pied de page des forums

Propulsé par FluxBB