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
utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste [28/07/2014 17:30]
Hypathie [Commandes indiquant en elle-même un adressage sed]
utilisateurs:hypathie:tutos:sed-par-la-methode-structuraliste [28/07/2014 18:09]
Hypathie [Introduction]
Ligne 22: Ligne 22:
 Par défaut (sans option) sed traite le flux d'​entrée et affiche sur la sortie, non seulement le flux d'​entrée qu'​elle a lu ligne par ligne, mais aussi ce qu'​elle a fait sur certaine ligne.\\ ​ Par défaut (sans option) sed traite le flux d'​entrée et affiche sur la sortie, non seulement le flux d'​entrée qu'​elle a lu ligne par ligne, mais aussi ce qu'​elle a fait sur certaine ligne.\\ ​
 Le flux d'​entrée peut être ce qui lui est transmis par un pipe en ligne de commandes ou un fichier.\\ Le flux d'​entrée peut être ce qui lui est transmis par un pipe en ligne de commandes ou un fichier.\\
 +
 +  * Méthodes d'​appel :
  
 <​code>​ <​code>​
Ligne 377: Ligne 379:
  
 ====Les commandes de sed supportant les adressages universaux et l'​adressage double==== ====Les commandes de sed supportant les adressages universaux et l'​adressage double====
-^  ^                       ​^+^Commandes ​ ^Significations ​  ^
 |d |supprimer ​ | |d |supprimer ​ |
 |p |afficher avec ''​-n''​ | |p |afficher avec ''​-n''​ |
Ligne 383: Ligne 385:
 |y/​..../​..../​ | translittération | |y/​..../​..../​ | translittération |
 |c\texte |changement de texte| |c\texte |changement de texte|
- 
  
 ===Préparation === ===Préparation ===
Ligne 506: Ligne 507:
 devient Vestale devient Vestale
 </​code>​ </​code>​
- 
  
  
Ligne 1116: Ligne 1116:
 contenu d'un fichier créé contenu d'un fichier créé
 </​code>​ </​code>​
 +
 +=====Les commande fonctionnant en rapport avec d'​autres commandes =====
 +
 +^Commandes ​ ^Significations ​  ^
 +|N |nouvelle ligne |
 +|D |supprimer (en rapport à \n)|
 +|P |afficher (en rapport à \n) |
 +
 +====La commande N====
 +La commande "​N"​ insère le caractère "​nouvelle ligne" (\n) à la fin du contenu de l'​espace de travail et ajoute la ligne suivante du flux d'​entrée à l'​espace de travail.\\ ​
 +Une fois le caractère "​nouvelle ligne" dans l'​espace de travail, il peut être appelé par \n par une commande interne de sed qui peut alors substituer un caractère par une nouvelle ligne.\\ ​
 +
 +===Exemples===
 +<code user>
 +echo -e "​A\nB\nC\nD\nE"​ | sed '​{N;​s/​B/​X/​}'​
 +</​code>​
 +<​code>​
 +A
 +X
 +C
 +D
 +E
 +</​code>​
 +> Là, le caractère nouvelle ligne placé dans l'​espace de travail n'a pas été utilisé par la substitution.
 +
 +<code user>
 +echo -e "​coucou\ntiti"​ | sed '/​coucou/​{N;​s/​\n/​ /}'
 +</​code>​
 +<​code>​
 +coucou titi
 +</​code>​
 +> Là, pour la ligne comportant "​coucou",​ s se sert du caractère de fin de ligne placé dans l'​espace de travail pour pouvoir matcher ce retour à la ligne avec "​echo"​.
 +>Elle peut alors le remplacer par un espace entre "​coucou"​ et "​titi"​.
 +
 +====D ( Delete ) ====
 +La commande efface l'​espace de travail jusqu'​à un caractère délimitant une nouvelle ligne.\\ ​
 +On en sert en association avec la commande N pour supprimer un saut de ligne consécutif à un saut de ligne ;\\ 
 +autrement dit, pour remplacer plusieurs sauts de ligne par un seul saut de ligne.\\ ​
 +
 +===Rappel :===
 +  * ''​ /^$/ ''​ : une ligne vide
 +  * ''​ /​^\n$/''​ : une ligne comportant un saut de ligne
 +
 +===Préparation===
 +  * Soit le fichier "​sed-D.txt"​
 +<code text sed-D.txt>​
 +ligne suivie de deux sauts de ligne
 +
 +
 +fin
 +</​code>​
 +
 +===Exemple===
 +<code user>
 +sed '/​^$/​{N;/​^\n$/​D;​}'​ sed-D.txt
 +ligne suivie de deux sauts de ligne
 +
 +fin
 +</​code>​
 +
 +>la première ligne vide est matchée par /^$/ ;
 +>puis, N rend utilisable le caractère de nouvelle ligne (\n);
 +>puis D supprime de l'​espace de travail la ligne vide /^\n$/D enregistrée précédemment,​
 +>puis il passe à la ligne suivant qui est aussi une ligne vide, il fait le même travail,
 +>enfin, il passe à la ligne "​fin"​ qui ne correspond pas à /^$/, et affiche le résultat avant de sortir.
 +> Ainsi il peut supprimer ligne à ligne autant de ligne vide, afin que les les lignes du texte soit espace au plus d'un saut de ligne. ​
 +
 +====La commande P (print) ====
 +La commande "​P"​ affiche le contenu de l'​espace de travail jusqu'​au premier caractère délimitant une nouvelle ligne (\n).\\ ​
 +
 +<code user>
 +echo -e "​ligne1 ligne2 ligne3"​ | sed '{P;s/ /​\n/​g}'​
 +</​code>​
 +<​code>​
 +ligne1 ligne2 ligne3
 +ligne1
 +ligne2
 +ligne3
 +</​code> ​
 +
 +> La commande P affiche le contenu de l'​espace de travail "​ligne1 ligne2 ligne3"​ sur lequel elle applique la substitution de la fin de l'​espace en nouvelle ligne \n.
  
 ---------- ----------
 <note tip> <note tip>
 **Toutes commandes présentées jusqu'​ici,​**\\ ​ **Toutes commandes présentées jusqu'​ici,​**\\ ​
-[[utilisateurs:​hypathie:​tutos:​sed-par-la-methode-structuraliste#​les-commandes-de-sed-supportant-les-adressages-universaux|celles regroupées en fonction des adressages universaux]],\\  +  *[[utilisateurs:​hypathie:​tutos:​sed-par-la-methode-structuraliste#​les-commandes-de-sed-supportant-les-adressages-universaux|celles regroupées en fonction des adressages universaux]]\\  
-[[utilisateurs:​hypathie:​tutos:​sed-par-la-methode-structuraliste#​la-commande-s|la commande ''​s''​]],\\  +  *[[utilisateurs:​hypathie:​tutos:​sed-par-la-methode-structuraliste#​la-commande-s|la commande ''​s''​]]\\  
-et [[utilisateurs:​hypathie:​tutos:​sed-par-la-methode-structuraliste#​commandes-indiquant-en-elle-meme-un-adressage-sed|les commandes adressant en-elle-même un adressage à sed]],\\  +  *[[utilisateurs:​hypathie:​tutos:​sed-par-la-methode-structuraliste#​commandes-indiquant-en-elle-meme-un-adressage-sed|les commandes adressant en-elle-même un adressage à sed]]\\  
-utilisent principalement le mécanisme suivant :\\ +  ​*[[utilisateurs:​hypathie:​tutos:​sed-par-la-methode-structuraliste#​les-commande-fonctionnant-en-rapport-avec-d-autres-commandes |Les commande fonctionnant en rapport avec d'​autres commandes]]\\ 
 +**utilisent principalement le mécanisme suivant :**\\ 
  
 > Lecture d'une ligne du fichier d'​entrée dans l'​espace de travail à laquelle est appliquée chaque commande du script séquentiellement. ​ > Lecture d'une ligne du fichier d'​entrée dans l'​espace de travail à laquelle est appliquée chaque commande du script séquentiellement. ​
-> Lorsque la fin d'une ligne de commande sed est atteinte, la ligne enregistrée et travaillée est alors envoyée sur la sortie standard,\\ +> Lorsque la fin d'une ligne de commande sed est atteinte, la ligne enregistrée et travaillée est alors envoyée sur la sortie standard, 
-Puis l'​espace de travail est effacé ; +puis l'​espace de travail est effacé ;\\  
-> Autrement dit, __leur fonctionnement se base sur une utilisation simple du //"​pattern space"//​__.+> Autrement dit, __leur fonctionnement se base sur une utilisation simple du //"​pattern space"//​__ ​à partir duquel un travail ligne à ligne est effectué.
  
 __**La notion de "​pattern space"​**__\\ __**La notion de "​pattern space"​**__\\
utilisateurs/hypathie/tutos/sed-par-la-methode-structuraliste.txt · Dernière modification: 13/11/2014 09:31 par Hypathie

Pied de page des forums

Propulsé par FluxBB