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
doc:systeme:sed [01/12/2011 05:03]
smolski
doc:systeme:sed [26/09/2013 10:02]
smolski [sed]
Ligne 1: Ligne 1:
-====== ​SED ======+====== ​sed ======
  
   * Objet : ''​sed''​ signifie //Stream EDitor//, autrement dit //éditeur de flux// et plus précisément //éditeur de flux orienté ligne//.   * Objet : ''​sed''​ signifie //Stream EDitor//, autrement dit //éditeur de flux// et plus précisément //éditeur de flux orienté ligne//.
Ligne 5: Ligne 5:
   * Commentaires : // sed est un outil éditeur en ligne. //   * Commentaires : // sed est un outil éditeur en ligne. //
   * Débutant, à savoir :    * Débutant, à savoir : 
-     * [[manuel:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) +     * [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) 
-     * [[manuel:bash]] En complément.+     * [[:​doc:​programmation:​shell:​repertoires | Shell - Les répertoires et chemins]] **INDISPENSABLE** 
 +     * [[:​doc:​programmation:​shell:​regexp | REGEXP - Les expressions régulières dans un shell.]] 
 +     * [[:​doc:​programmation:bash | Le shell 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 [[commande:editeur:vim]] ou [[commande:editeur: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: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 69: Ligne 71:
 ==== Option -i ==== ==== Option -i ====
  
-<note important>​ATTENTION ! L'​option -i __modifiera réellement__ les fichiers traités.</​note>​+**ATTENTION !** L'​option -i __modifiera réellement__ les fichiers traités. 
 L'​option ''​-i''​ est la fonction d'​écriture de SED. Si elle n'est pas spécifiée,​ le fichier traité ne sera pas modifié. L'​option ''​-i''​ est la fonction d'​écriture de SED. Si elle n'est pas spécifiée,​ le fichier traité ne sera pas modifié.
  
Ligne 108: Ligne 111:
  
 <​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 229: Ligne 241:
  
 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 : [[:​doc:​programmation:​shell:​regexp]]
  
 === Exemples : === === Exemples : ===
Ligne 237: Ligne 249:
  
 substitue toutes les chaînes //Fraises// ou //fraises// par ''​FRAISES''​ substitue toutes les chaînes //Fraises// ou //fraises// par ''​FRAISES''​
 +
 ---- ----
 \\ \\
Ligne 246: Ligne 259:
 #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 256: Ligne 270:
 </​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//​.
 +
 ---- ----
 \\ \\
 +<code bash>
 +$ sed -e "/​cerises/​s/​^/#/"​ test1.txt</​code>​
 +<​code>​toto et titi aiment les abricots.
 +toto préfère les Fraises.
 +#titi les cerises.
 +TOTo et TITI sont des chipoteurs du jardin.
 +</​code>​
 +Ainsi, nous avons commenté uniquement la ligne du fichier //​test1.txt//​ contenant le motif : **cerises**.
  
 ==== La fonction de suppression d ==== ==== La fonction de suppression d ====
Ligne 442: Ligne 465:
  
 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 ====
Ligne 455: Ligne 482:
    ​toaa2aato.    ​toaa2aato.
  
 +==== sed et le point ====
 +
 +La commande:
 +
 +   sed -e '​s/​motif:​ .*/motif: nouveau/'​ <​fichier>​
 +
 +Remplacera **motif:** par **motif: nouveau** dans le <​fichier>​
 +
 +//Merci à //​**cthulu**//​ Hop !// LOL
 ===== Lien : ===== ===== Lien : =====
  
doc/systeme/sed.txt · Dernière modification: 30/09/2023 22:14 par captnfab

Pied de page des forums

Propulsé par FluxBB