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 [19/10/2010 12:46]
smolski
doc:systeme:sed [01/08/2013 10:31]
smolski [Préparation aux exemples d'illustration de ce tuto :]
Ligne 1: Ligne 1:
-====== ​SED ======+====== ​sed ======
  
-''​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//
 +  * Niveau requis : TOUS 
 +  * Commentaires : // sed est un outil éditeur en ligne. // 
 +  * Débutant, à savoir :  
 +     * [[manuel:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) 
 +     * [[manuel:​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 [[manuel:vim]] ou [[manuel: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 28: Ligne 33:
 ^Option ​  ​^ ​  ​Commentaires ​  | ^Option ​  ​^ ​  ​Commentaires ​  |
 |-n    |Écrit seulement les lignes spécifiées (associé à l'​option /p) sur la sortie standard ​  | |-n    |Écrit seulement les lignes spécifiées (associé à l'​option /p) sur la sortie standard ​  |
-|-e    |Permet de spécifier les commandes ​à appliquer ​sur le fichier. ​  |+|-e    |Ajoute une commande ​à la liste des commandes que doit exécuter **sed** ​sur le fichier. ​  |
 |-f    |Les commandes sont lues à partir d'un fichier préalablement rédigé. ​  | |-f    |Les commandes sont lues à partir d'un fichier préalablement rédigé. ​  |
-|-i    |Le fichier est réellement traité par la commande sed.   |+|-i    |Le fichier est édité sur place. ​ Sinon, __//le fichier n'est pas édité//​__,​ une copie de son contenu est éditée et renvoyée sur la sortie standard.   |
 |s/ (//​Substitution//​) ​  ​|Commande de substitution (remplace les caractères définis par l'​ensemble de la commande sed).   | |s/ (//​Substitution//​) ​  ​|Commande de substitution (remplace les caractères définis par l'​ensemble de la commande sed).   |
 |/g (//​Global//​) ​  ​|Traite toutes les occurences définie (par défaut : seule la première occurence définie est traitée). ​  | |/g (//​Global//​) ​  ​|Traite toutes les occurences définie (par défaut : seule la première occurence définie est traitée). ​  |
Ligne 64: Ligne 69:
 ==== 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 232: Ligne 238:
  
 substitue toutes les chaînes //Fraises// ou //fraises// par ''​FRAISES''​ substitue toutes les chaînes //Fraises// ou //fraises// par ''​FRAISES''​
 +
 ---- ----
 \\ \\
Ligne 241: Ligne 248:
 #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 251: Ligne 259:
 </​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 289: Ligne 306:
 //Voir option **n** précédente.//​ //Voir option **n** précédente.//​
  
-=== La commande l ===+=== La commande l (la lettre L en minuscule) ​===
  
 La commande "''​l''"​ (list) affiche la ligne sélectionnée sur la sortie standard avec en plus les caractères de contrôles en clair avec leur code ASCII (deux chiffres en octal). La commande "''​l''"​ (list) affiche la ligne sélectionnée sur la sortie standard avec en plus les caractères de contrôles en clair avec leur code ASCII (deux chiffres en octal).
Ligne 442: Ligne 459:
 La commande: La commande:
  
-   sed -e "​s/​\ ​ ([0-9][0-9]*\ ​ )/aa\  1aa/" <​fichier>​+   sed -e "​s/​\([0-9][0-9]*\)/​aa\1aa/"​ <​fichier>​
  
-La sous-expression (sous-chaîne) \ ([0-9][0-9]*\) désigne un ou plusieurs chiffres, chacun sera entouré des caractères aa. \\+La sous-expression (sous-chaîne) \([0-9][0-9]*\) désigne un ou plusieurs chiffres, chacun sera entouré des caractères aa. \\
 La chaîne : La chaîne :
    to2to    to2to
Ligne 450: Ligne 467:
    ​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