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 | ||
doc:systeme:sed [23/05/2013 18:51] smolski [Préparation aux exemples d'illustration de ce tuto :] |
doc:systeme:sed [22/09/2013 10:58] captnfab [Préparation aux exemples d'illustration de ce tuto :] |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
* Débutant, à savoir : | * Débutant, à savoir : | ||
* [[manuel:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * [[manuel:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * [[manuel:bash]] En complément. | + | * [[:doc:programmation:bash]] En complément. |
===== Présentation ===== | ===== Présentation ===== | ||
''sed'' est souvent défini comme un éditeur de texte en ligne non-interactif. | ''sed'' est souvent défini comme un éditeur de texte en ligne non-interactif. | ||
- | - Il lit les lignes d'un fichier une à une (ou provenant de l'entrée standard), sans traiter nécessairement tout le texte du fichier en cours (comme le font [[manuel:vim]] ou [[manuel:nano]] par exemple) ; | + | - Il lit les lignes d'un fichier une à une (ou provenant de l'entrée standard), sans traiter nécessairement tout le texte du fichier en cours (comme le font [[:doc:editeurs:vim]] ou [[:doc:editeurs:nano]] par exemple) ; |
- leur applique un certain nombre de commandes d'édition ; | - leur applique un certain nombre de commandes d'édition ; | ||
- et renvoie les lignes résultantes sur la sortie standard, __sans modification__ du fichier traité. | - et renvoie les lignes résultantes sur la sortie standard, __sans modification__ du fichier traité. | ||
Ligne 109: | Ligne 109: | ||
<note>L'option ''-e'' n'est pas nécessaire quand vous n'avez qu'une seule fonction d'édition.</note> | <note>L'option ''-e'' n'est pas nécessaire quand vous n'avez qu'une seule fonction d'édition.</note> | ||
+ | |||
+ | === Astuce === | ||
+ | |||
+ | En cas de confusion avec un chemin, genre ''/machin/truc/chouette '' __après l'option __ les séparateurs ''/ '' peuvent être remplacés par des caractères neutres, comme la virgule ou le dièse. Par exemple avec le chemin précédent : | ||
+ | sed -e 's#/machin/truc/chouette#/machin/truc/wouap#' | ||
+ | |||
+ | Evitant ainsi des confusions dans l'interprétation de la commande. | ||
+ | |||
+ | //Merci à //**enicar**// sur le chan df !// | ||
==== Option -f ==== | ==== Option -f ==== | ||
Ligne 230: | Ligne 239: | ||
La fonction de substitution peut aussi être utilisée avec une **expression régulière**. \\ | La fonction de substitution peut aussi être utilisée avec une **expression régulière**. \\ | ||
- | Voir : [[regexp]] | + | Voir : [[manuel:regexp]] |
=== Exemples : === | === Exemples : === | ||
Ligne 238: | Ligne 247: | ||
substitue toutes les chaînes //Fraises// ou //fraises// par ''FRAISES'' | substitue toutes les chaînes //Fraises// ou //fraises// par ''FRAISES'' | ||
+ | |||
---- | ---- | ||
\\ | \\ | ||
Ligne 247: | Ligne 257: | ||
#TOTo et TITI sont des chipoteurs du jardin.</code> | #TOTo et TITI sont des chipoteurs du jardin.</code> | ||
Ainsi, nous avons commenté l'ensemble des lignes du fichier test1.txt. | Ainsi, nous avons commenté l'ensemble des lignes du fichier test1.txt. | ||
+ | |||
---- | ---- | ||
\\ | \\ | ||
Ligne 257: | Ligne 268: | ||
</code> | </code> | ||
Ainsi, nous avons commenté uniquement la 3ème ligne du fichier //test1.txt//. | Ainsi, nous avons commenté uniquement la 3ème ligne du fichier //test1.txt//. | ||
+ | |||
---- | ---- | ||
\\ | \\ | ||
Ligne 451: | Ligne 463: | ||
de notre fichier. test1.txt | de notre fichier. test1.txt | ||
+ | |||
+ | <note>Pour rendre effective cette commande programmée, écrivez : '' -i '' ainsi : | ||
+ | <code bash> | ||
+ | $ sed -i -f test3.txt test1.txt</code></note> | ||
==== sed et les sous-chaînes ==== | ==== sed et les sous-chaînes ==== |