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 [29/07/2014 12:53] Hypathie [Les commande fonctionnant en rapport avec d'autres commandes] |
utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste [29/07/2014 19:14] Hypathie [Les rapports d'implication /adressages/ <=> commandes de sed] |
||
---|---|---|---|
Ligne 309: | Ligne 309: | ||
* un numéro de ligne (les lignes sont numérotées à partir du chiffre 1); | * un numéro de ligne (les lignes sont numérotées à partir du chiffre 1); | ||
* le caractère ''$'' désignant la dernière ligne; | * le caractère ''$'' désignant la dernière ligne; | ||
- | * une expression régulière encadrée par des caractères ''/''; | + | * [[utilisateurs:hypathie:tutos:sed-et-les-expressions-rationnelles|une expression régulière]] encadrée par des caractères ''/''; |
Ligne 349: | Ligne 349: | ||
</code> | </code> | ||
- | >Le titre "Ton sentiment comme atmosphère" est ajouté sur la la sortie standard. | + | >Le titre "Ton sentiment comme atmosphère" est ajouté sur la sortie standard. |
=== "a" : ajout après l'adressage=== | === "a" : ajout après l'adressage=== | ||
Ligne 356: | Ligne 356: | ||
</code> | </code> | ||
- | >Une ligne vide est ajoutée en deuxième ligne par la première ajout que si on indique au moins un caractère | + | >Pour ajouter une ligne vide en deuxième ligne avec la commande (a), il faut ajouter au moins un caractère, ici, "espace". |
- | >Il est plus simple, en cas de succession de commandes parmi lesquelles figure __une commande d'ajout__ de ligne, | + | >Pour désigner une ligne précises aux commandes qui suivent __une commande d'ajout__ de ligne, il peut être plus simple d'utiliser l'adressage par d'encadrement (par exemple ici, '' /^mon/,$s/^/ / '', ou '' 2,$s/^/ / ''). |
- | >d'utiliser l'adressage d'encadrement /^mon/. | + | |
- | + | ||
- | <code user>sed -e '1a\ ' -e '/^mon/,$s/^/ /' sed-automn.txt</code> | + | |
===Utiliser conjointement i et a === | ===Utiliser conjointement i et a === | ||
Ligne 367: | Ligne 364: | ||
* en insérant le titre "Ton sentiment comme atmosphère" | * en insérant le titre "Ton sentiment comme atmosphère" | ||
* en insérant une ligne ne comportant qu'un espace, | * en insérant une ligne ne comportant qu'un espace, | ||
- | * en ajoutant un espace à partir de la ligne /^automne/ | + | * en ajoutant un espace à partir de la ligne '' /^automne/ '' |
<code user> | <code user> | ||
Ligne 375: | Ligne 372: | ||
</code> | </code> | ||
- | >Il est à noter les adressages utilisés pour obtenir ce résultat, par rapport à ceux utilisés précédemment | + | On aurait pu utiliser utiliser la ligne de commande qui suit, pour obtenir le même résultat. |
- | >pour les exemples où les commandes i et a étaient utilisées seules. | + | |
- | + | ||
- | On aurait pu utiliser pour obtenir le même résultat : | + | |
<code user> | <code user> | ||
sed -e '1i\Ton sentiment comme atmosphère'\ | sed -e '1i\Ton sentiment comme atmosphère'\ | ||
Ligne 385: | Ligne 379: | ||
</code> | </code> | ||
+ | |||
+ | >Il est à noter quels ont été les adressages utilisés pour obtenir ce résultat, par rapport à ceux qui avaient été utilisés précédemment | ||
+ | >(pour les exemples où les commandes i et a étaient utilisées seules). | ||
>Voir la prochaine note. | >Voir la prochaine note. | ||
Ligne 452: | Ligne 449: | ||
C'est une paire d'adresses simples séparées par une virgule. Toutes les combinaisons sont possibles. | C'est une paire d'adresses simples séparées par une virgule. Toutes les combinaisons sont possibles. | ||
- | * deux numéros de ligne ''n,m**cmd_sed**'' : l'analyseur de sed traite les lignes comprises entre les deux adresses, et celles des adresses aussi.\\ | + | * deux numéros de ligne ''**n,m**cmd_sed'' : (''** n **'' et ''** m **'' sont des nombres) l'analyseur de sed traite la plage de lignes commençant de la ligne ''** n **'' jusqu'à la ligne ''** m **''.\\ |
- | * deux encadrements ''/ER1/,/ER2/'' : l'analyseur de sed traite les lignes délimitées par les //E.R// de début et de fin en prenant le nombre de lignes le plus large((c'est-à-dire, si l'E.R. de début figure entre les deux adressages, il traite le plage la plus grande.)) | + | * deux encadrements ''**/ER1/,/ER2/**'' : l'analyseur de sed traite la plage de lignes commençant à partir de la première ligne reconnue par //ER1// jusqu'à la ligne reconnue par //ER2//, en prenant le nombre de lignes le plus large((c'est-à-dire, qu'il peut y avoir une ligne avec ER1 dans la plage ''**n,/ER/**''.)) |
- | * combinaison ''n,/ER/'' : La plage est constituée à partir de la ligne numéro ''n'', jusqu'à la première ligne reconnue par le //E.R.// | + | * combinaison ''**n,/ER/**'' : La plage est constituée à partir de la ligne numéro ''** n **'', jusqu'à la première ligne reconnue par le //ER// |
- | * combinaison ''/ER/,n'' : La plage est constituée à partir de la première ligne vérifiant l'expression régulière jusqu'à la ligne de numéro ''n''. | + | * combinaison ''**/ER/,m**'' : La plage est constituée à partir de la première ligne vérifiant //ER// jusqu'à la ligne de numéro ''** m **''. |
====Les commandes de sed supportant les adressages universaux et l'adressage double==== | ====Les commandes de sed supportant les adressages universaux et l'adressage double==== | ||
Ligne 593: | Ligne 590: | ||
devient Vestale | devient Vestale | ||
</code> | </code> | ||
+ | |||
+ | >Le caractère # commande la ligne. | ||
===Lancer le script avec l'option -i === | ===Lancer le script avec l'option -i === |