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 [27/07/2014 14:32] Hypathie [Les rapport d'implication /adressages/ <=> commandes de sed] |
utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste [27/07/2014 16:28] Hypathie [Introduction] |
||
---|---|---|---|
Ligne 48: | Ligne 48: | ||
</code> | </code> | ||
- | //Ce que j'appelle là "options_cmd_de_sed" est appelé selon la documentation "drapeaux", ou encore "options". Elle dépend de la connaissance des commandes de sed.// | + | //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 63: | Ligne 63: | ||
</code> | </code> | ||
- | Soit le fichier nommé "sed-options" : | + | <code text sed-options> |
- | <code> | + | |
Il est vraiment idiot, | Il est vraiment idiot, | ||
se balade sur un vélo | se balade sur un vélo | ||
Ligne 217: | Ligne 216: | ||
</note> | </note> | ||
- | =====Les rapport d'implication /adressages/ <=> commandes de sed===== | + | =====Les rapports d'implication /adressages/ <=> commandes de sed===== |
<note tip> | <note tip> | ||
**Analyse de l'implication : ''/adressages/'' <=> ''cmd_de_sed'' | **Analyse de l'implication : ''/adressages/'' <=> ''cmd_de_sed'' | ||
Ligne 282: | Ligne 281: | ||
<note important> | <note important> | ||
__Attention avec l'adressage simple !__\\ | __Attention avec l'adressage simple !__\\ | ||
- | * Avec l'adressage simple par numéro de lignes, seule la ligne indiquée par le numéro est traitée. | + | * Avec l'adressage simple par numéro de ligne, seule la ligne indiquée par le numéro est traitée. |
* Avec l'adressage simple par l'encadrement ''/'', toutes les lignes qui correspondent à ''/expression régulière/'' sont traitées . | * Avec l'adressage simple par l'encadrement ''/'', toutes les lignes qui correspondent à ''/expression régulière/'' sont traitées . | ||
</note> | </note> | ||
Ligne 289: | Ligne 288: | ||
===Adressage double === | ===Adressage double === | ||
- | C'est une paire d'adresses simples séparées 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éro 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**'' : l'analyseur de sed traite les lignes comprises entre les deux adresses, et celles des adresses aussi.\\ |
- | * deux encadrements ''/ER1/,/ER2/'' : l'analyseur de sed traite les lignes comprises 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 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.)) |
* 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 //E.R.// | ||
* 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/,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''. | ||
Ligne 433: | Ligne 432: | ||
==="i" : insertion avant la ligne d'adressage=== | ==="i" : insertion avant la ligne d'adressage=== | ||
<code user> | <code user> | ||
- | sed '1i\Ton sentiment comme atmosphère' sed-cmd | + | sed -i '1i\Ton sentiment comme atmosphère' sed-cmd |
+ | </code> | ||
+ | <code user> | ||
+ | cat sed-cmd | ||
</code> | </code> | ||
- | <code> | ||
Ton sentiment comme atmosphère | Ton sentiment comme atmosphère | ||
automne | automne | ||
Ligne 456: | Ligne 457: | ||
=== "a" : ajout après l'adressage=== | === "a" : ajout après l'adressage=== | ||
<code user> | <code user> | ||
- | sed '1a\ ' sed-cmd | + | sed -e '1a\ ' -e '2,$s/^/ /' -i sed-cmd |
+ | </code> | ||
+ | <code user> | ||
+ | cat sed-cmd | ||
</code> | </code> | ||
<code> | <code> | ||
- | automne | + | Ton sentiment comme atmosphère |
- | mon bel automne | + | automne |
- | dans les vergers | + | mon bel automne |
- | du fond du ciel | + | dans les vergers |
- | les éperviers | + | du fond du ciel |
- | de tes yeux planent | + | les éperviers |
- | tes feuilles | + | de tes yeux planent |
- | tes fruits, ta pomme | + | tes feuilles |
- | et le cerf, et son brame | + | tes fruits, ta pomme |
- | à jamais aimés | + | et le cerf, et son brame |
- | de l'homme | + | à jamais aimés |
- | en ton cheveu | + | de l'homme |
- | me donnent | + | en ton cheveu |
- | et des langueurs | + | me donnent |
- | et son adieu | + | et des langueurs |
+ | et son adieu | ||
</code> | </code> | ||
Ligne 492: | Ligne 497: | ||
<code user> | <code user> | ||
s/motif/substitut/ | s/motif/substitut/ | ||
- | -> si motif = une regexp | + | -> si motif = une E.R |
-> alors subtitut = une chaîne de caractère | -> alors subtitut = une chaîne de caractère | ||
</code> | </code> | ||
- | >Pour Regexp | + | >Pour //E.R// |
>On peut utiliser la syntaxe habituelle, ou la syntaxe étendue avec l'option ''sed -r''. | >On peut utiliser la syntaxe habituelle, ou la syntaxe étendue avec l'option ''sed -r''. | ||
>Voir : [[utilisateurs:hypathie:tutos:sed-et-les-expressions-rationnelles]] | >Voir : [[utilisateurs:hypathie:tutos:sed-et-les-expressions-rationnelles]] | ||
Ligne 615: | Ligne 620: | ||
La commande ''s'' supporte les [[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste?&#les-adressages-universaux|adressages universaux]].\\ | La commande ''s'' supporte les [[utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste?&#les-adressages-universaux|adressages universaux]].\\ | ||
Elle permet en plus de nouveaux types d'adressage. | Elle permet en plus de nouveaux types d'adressage. | ||
- | ===Remarque sur l'adressages mixtes : 'n,/regexp/' ou '/regexp/,n' === | + | ===Remarque sur l'adressages mixtes : 'n,/E.R./' ou '/E.R./,n' === |
- | __1) 'n,/regexp/s/chaineA/chaineB'__ | + | __1) 'n,/E.R./s/chaineA/chaineB'__ |
''n'' est un nombre entier. | ''n'' est un nombre entier. | ||
- | On remplace chaîneA par chaîneB de la ligne ''n'' à la ligne comportant /regexp/.\\ | + | On remplace chaîneA par chaîneB de la ligne ''n'' à la ligne comportant /E.R./.\\ |
* Préparation : fichier "sed1.txt | * Préparation : fichier "sed1.txt | ||
Ligne 645: | Ligne 650: | ||
</code> | </code> | ||
- | __2) '/regexp/ns/chaîneA/chaîneB/'__ | + | __2) '/E.R./ns/chaîneA/chaîneB/'__ |
* Substitution à partir de la chaîne "orange" jusqu'à la ligne n° 5 | * Substitution à partir de la chaîne "orange" jusqu'à la ligne n° 5 | ||
Ligne 662: | Ligne 667: | ||
<note important> | <note important> | ||
- | Il faut trois "genres d'objets". Car si /regexp/ d'adressage correspond à chaîne, alors l'indication ''n'' n'arrêtera pas la substitution. | + | Il faut trois "genres d'objets". Car si /E.R./ d'adressage correspond à chaîne, alors l'indication ''n'' n'arrêtera pas la substitution. |
<code user> | <code user> | ||
sed '/[[:digit:]]/,3s/[[:digit:]]/GAGA/' sed1.txt | sed '/[[:digit:]]/,3s/[[:digit:]]/GAGA/' sed1.txt | ||
Ligne 804: | Ligne 809: | ||
</code> | </code> | ||
- | ====sed : commande d'adressage et script avancé ==== | + | =====sed : commande d'adressage et script avancé===== |