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 17:25] Hypathie [Les rapports d'implication /adressages/ <=> commandes de sed] |
utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste [28/07/2014 18:14] Hypathie [La commande s] |
||
---|---|---|---|
Ligne 22: | Ligne 22: | ||
Par défaut (sans option) sed traite le flux d'entrée et affiche sur la sortie, non seulement le flux d'entrée qu'elle a lu ligne par ligne, mais aussi ce qu'elle a fait sur certaine ligne.\\ | Par défaut (sans option) sed traite le flux d'entrée et affiche sur la sortie, non seulement le flux d'entrée qu'elle a lu ligne par ligne, mais aussi ce qu'elle a fait sur certaine ligne.\\ | ||
Le flux d'entrée peut être ce qui lui est transmis par un pipe en ligne de commandes ou un fichier.\\ | Le flux d'entrée peut être ce qui lui est transmis par un pipe en ligne de commandes ou un fichier.\\ | ||
+ | |||
+ | * Méthodes d'appel : | ||
<code> | <code> | ||
Ligne 377: | Ligne 379: | ||
====Les commandes de sed supportant les adressages universaux et l'adressage double==== | ====Les commandes de sed supportant les adressages universaux et l'adressage double==== | ||
- | ^ ^ ^ | + | ^Commandes ^Significations ^ |
|d |supprimer | | |d |supprimer | | ||
|p |afficher avec ''-n'' | | |p |afficher avec ''-n'' | | ||
Ligne 383: | Ligne 385: | ||
|y/..../..../ | translittération | | |y/..../..../ | translittération | | ||
|c\texte |changement de texte| | |c\texte |changement de texte| | ||
- | |||
===Préparation === | ===Préparation === | ||
Ligne 506: | Ligne 507: | ||
devient Vestale | devient Vestale | ||
</code> | </code> | ||
- | |||
=====La commande "s"===== | =====La commande "s"===== | ||
- | ====Méthodes d'appel==== | + | ====Syntaxe globale==== |
- | <code> | + | |
- | s/motif/substitut/[options_de_s] fichier | + | |
- | </code> | + | |
- | ou | + | |
<code> | <code> | ||
- | cmd | s/motif/substitut/[options_de_s] | + | s/motif/substitut/[options_de_s] |
</code> | </code> | ||
- | >Voir : [[doc:systeme:sed#la-fonction-de-substitution-s]] | + | À voir : [[doc:systeme:sed#la-fonction-de-substitution-s]] |
- | ====Détail : /motif/substitut/ ==== | + | ====Détail : "motif" et "substitut" ==== |
<code user> | <code user> | ||
s/motif/substitut/ | s/motif/substitut/ | ||
Ligne 534: | Ligne 530: | ||
====Détail : la ligne de commande "s"==== | ====Détail : la ligne de commande "s"==== | ||
<code c> | <code c> | ||
- | s/expression1/expression2/[options_de_s] | + | s/motif/substitut/[options_de_s] |
</code> | </code> | ||
===les séparateurs ( / )=== | ===les séparateurs ( / )=== | ||
Ligne 1117: | Ligne 1113: | ||
</code> | </code> | ||
- | ---------- | + | =====Les commande fonctionnant en rapport avec d'autres commandes ===== |
- | <note tip> | + | |
- | **Toutes commandes présentées jusqu'ici,**\\ | + | |
- | [[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste#les-commandes-de-sed-supportant-les-adressages-universaux|celles regroupées en fonction des adressages universaux]],\\ | + | |
- | [[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste#la-commande-s|la commande ''s'']],\\ | + | |
- | et [[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste#commandes-indiquant-en-elle-meme-un-adressage-sed|les commandes adressant en-elle-même un adressage à sed]],\\ | + | |
- | utilisent principalement le mécanisme suivant :\\ | + | |
- | > Lecture d'une ligne du fichier d'entrée dans l'espace de travail à laquelle est appliquée chaque commande du script séquentiellement. | + | ^Commandes ^Significations ^ |
- | > Lorsque la fin d'une ligne de commande sed est atteinte, la ligne enregistrée et travaillée est alors envoyée sur la sortie standard,\\ | + | |N |nouvelle ligne | |
- | > Puis l'espace de travail est effacé ; | + | |D |supprimer (en rapport à \n)| |
- | > Autrement dit, __leur fonctionnement se base sur une utilisation simple du //"pattern space"//__. | + | |P |afficher (en rapport à \n) | |
- | + | ||
- | __**La notion de "pattern space"**__\\ | + | |
- | + | ||
- | C'est __la mémoire principale (tampon)__ qui permet à sed de travailler ; on la nomme aussi "espace de travail". C'est là que sont enregistrées les données.\\ | + | |
- | + | ||
- | Mais sed possède __deux sortes de mémoire tampon__. La __deuxième est appelée "espace annexe" ou "hold space"__.\\ | + | |
- | Cette dernière est un espace mémoire où les données (la ou les ligne(s)) peuvent être enregistrées provisoirement.\\ | + | |
- | Certaines commandes permettent de modifier l'adressage des lignes tel qu'il est enregistré dans l'une de ces mémoires.\\ | + | |
- | D'autres, permettent aussi un échange de données d'une mémoire à l'autre.\\ | + | |
- | + | ||
- | **Il reste à présenter :** | + | |
- | * Les commandes multi-lignes (N,D,P) | + | |
- | * Les commandes utilisant la mémoire annexe (h,H,g,G,x) | + | |
- | * Les commandes de tests faisant appel à des étiquettes (:,b,t,T) | + | |
- | </note> | + | |
- | ------------- | + | |
====La commande N==== | ====La commande N==== | ||
Ligne 1175: | Ligne 1149: | ||
La commande efface l'espace de travail jusqu'à un caractère délimitant une nouvelle ligne.\\ | La commande efface l'espace de travail jusqu'à un caractère délimitant une nouvelle ligne.\\ | ||
On en sert en association avec la commande N pour supprimer un saut de ligne consécutif à un saut de ligne ;\\ | On en sert en association avec la commande N pour supprimer un saut de ligne consécutif à un saut de ligne ;\\ | ||
- | autrement dit, pour remplacer plusieurs sauts de ligne par un seul saut de ligne. | + | autrement dit, pour remplacer plusieurs sauts de ligne par un seul saut de ligne.\\ |
===Rappel :=== | ===Rappel :=== | ||
* '' /^$/ '' : une ligne vide | * '' /^$/ '' : une ligne vide | ||
Ligne 1206: | Ligne 1181: | ||
====La commande P (print) ==== | ====La commande P (print) ==== | ||
La commande "P" affiche le contenu de l'espace de travail jusqu'au premier caractère délimitant une nouvelle ligne (\n).\\ | La commande "P" affiche le contenu de l'espace de travail jusqu'au premier caractère délimitant une nouvelle ligne (\n).\\ | ||
+ | |||
+ | <code user> | ||
+ | echo -e "ligne1 ligne2 ligne3" | sed '{P;s/ /\n/g}' | ||
+ | </code> | ||
+ | <code> | ||
+ | ligne1 ligne2 ligne3 | ||
+ | ligne1 | ||
+ | ligne2 | ||
+ | ligne3 | ||
+ | </code> | ||
+ | |||
+ | > La commande P affiche le contenu de l'espace de travail "ligne1 ligne2 ligne3" sur lequel elle applique la substitution de la fin de l'espace en nouvelle ligne \n. | ||
+ | |||
+ | ---------- | ||
+ | <note tip> | ||
+ | **Toutes commandes présentées jusqu'ici,**\\ | ||
+ | *[[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste#les-commandes-de-sed-supportant-les-adressages-universaux|celles regroupées en fonction des adressages universaux]]\\ | ||
+ | *[[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste#la-commande-s|la commande ''s'']]\\ | ||
+ | *[[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste#commandes-indiquant-en-elle-meme-un-adressage-sed|les commandes adressant en-elle-même un adressage à sed]]\\ | ||
+ | *[[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste#les-commande-fonctionnant-en-rapport-avec-d-autres-commandes |Les commande fonctionnant en rapport avec d'autres commandes]]\\ | ||
+ | **utilisent principalement le mécanisme suivant :**\\ | ||
+ | |||
+ | > Lecture d'une ligne du fichier d'entrée dans l'espace de travail à laquelle est appliquée chaque commande du script séquentiellement. | ||
+ | > Lorsque la fin d'une ligne de commande sed est atteinte, la ligne enregistrée et travaillée est alors envoyée sur la sortie standard, | ||
+ | > puis l'espace de travail est effacé ;\\ | ||
+ | > Autrement dit, __leur fonctionnement se base sur une utilisation simple du //"pattern space"//__ à partir duquel un travail ligne à ligne est effectué. | ||
+ | |||
+ | __**La notion de "pattern space"**__\\ | ||
+ | |||
+ | C'est __la mémoire principale (tampon)__ qui permet à sed de travailler ; on la nomme aussi "espace de travail". C'est là que sont enregistrées les données.\\ | ||
+ | |||
+ | Mais sed possède __deux sortes de mémoire tampon__. La __deuxième est appelée "espace annexe" ou "hold space"__.\\ | ||
+ | Cette dernière est un espace mémoire où les données (la ou les ligne(s)) peuvent être enregistrées provisoirement.\\ | ||
+ | Certaines commandes permettent de modifier l'adressage des lignes tel qu'il est enregistré dans l'une de ces mémoires.\\ | ||
+ | D'autres, permettent aussi un échange de données d'une mémoire à l'autre.\\ | ||
+ | |||
+ | **Il reste à présenter :** | ||
+ | * Les commandes utilisant la mémoire annexe (h,H,g,G,x) | ||
+ | * Les commandes de tests faisant appel à des étiquettes (:,b,t,T) | ||
+ | </note> | ||
+ | ------------- | ||