Sed

De system.co.free.fr.
(Différences entre les versions)
(Truc et astuces)
(Truc et astuces)
 
(23 versions intermédiaires masquées)
Ligne 1 : Ligne 1 :
= SED, les bases et truc et astuces=
= SED, les bases et truc et astuces=
 +
==Les sites de references==
 +
http://www.commentcamarche.net/faq/9559-sed-introduction-a-sed-part-i <br>
 +
http://www.commentcamarche.net/faq/9559-sed-introduction-a-sed-part-ii <br>
 +
http://www.commentcamarche.net/faq/9559-sed-introduction-a-sed-part-iii <br>
 +
<br>
 +
http://doc.ubuntu-fr.org/sed <br>
 +
<br>
 +
http://www.corporesano.org/doc-site/grepawksed.html<br>
 +
<br>
 +
http://sed.sourceforge.net/sed1line_fr.html<br>
 +
<br>
 +
 +
==les bases==
 +
<br><br>
 +
[ ] une alternative de caractere. [dzYTP] indique qu'il s'agit d'un caractere parmis dzYTP.
 +
<br><br>
 +
\t pour tabulationlation. a mettre a la fin d'une sequence entre crochet: [ \t]* correspond a 0 ou une infinité d'espaces ou tabulations qui se suivent
 +
<br><br>
==Truc et astuces==
==Truc et astuces==
-
* récupérer une valeur dans un fichier contenant cle=donnée. Le separateur peut etre <b>=, : </b>ou<b> |</b>.<br><pre>sed -n 's/^cle[ \t]*[:=\|][ \t]*[ \t]*$//p' fichier.ini</pre>
+
===récupérer une valeur dans un fichier contenant cle=valeur, avec une cle unique===
-
* la meme, mais en supprimeant les espaces et tabulations en fin de ligne:<pre>sed -n 's/^cle[ \t]*[:=\|][ \t]*//p;s/[ \t]*$//' fichier.ini</pre>
+
Le séparateur peut être <b>= : |</b><br>
 +
<pre>sed -n 's/^cle[ \t]*[:=|][ \t]*//p' fichier.ini</pre>
 +
*l'option -n correspond a silencieux. Avec p pour print en fin de commande, seul les lignes sélectionnés sont affiché.
 +
*l'inconvénient de cette commande est qu'elle renvoi tout ce qui ce trouve après la clé+espaces ou tabulation+caractère de séparation. Notamment les commentaires si vous en avez mis sur la même ligne
 +
<br>
 +
Ici,les commentaires se trouvant sur la même ligne sont supprimé:<pre>sed '/^cle[ \t]*[:=|][ \t]*/!d;s/[ \t]*//g;s/^cle[:=|]//;s/#.*//g' fichier.ini</pre>
 +
*<b>/^cle[ \t]*[:=|][ \t]*/!d</b> sélectionne la ligne commençant par cle avec le séparateur et supprime les autres
 +
*<b>s/[ \t]*//g</b> supprime les tabulations et espaces de la ligne.
 +
*<b>s/^cle[:=|]//</b> supprime la cle et le séparateur
 +
*<b>s/#.*//g</b> supprime les commentaires commençant par #

Version actuelle en date du 17 septembre 2014 à 20:54

Sommaire

SED, les bases et truc et astuces

Les sites de references

http://www.commentcamarche.net/faq/9559-sed-introduction-a-sed-part-i
http://www.commentcamarche.net/faq/9559-sed-introduction-a-sed-part-ii
http://www.commentcamarche.net/faq/9559-sed-introduction-a-sed-part-iii

http://doc.ubuntu-fr.org/sed

http://www.corporesano.org/doc-site/grepawksed.html

http://sed.sourceforge.net/sed1line_fr.html

les bases



[ ] une alternative de caractere. [dzYTP] indique qu'il s'agit d'un caractere parmis dzYTP.

\t pour tabulationlation. a mettre a la fin d'une sequence entre crochet: [ \t]* correspond a 0 ou une infinité d'espaces ou tabulations qui se suivent

Truc et astuces

récupérer une valeur dans un fichier contenant cle=valeur, avec une cle unique

Le séparateur peut être = : |

sed -n 's/^cle[ \t]*[:=|][ \t]*//p' fichier.ini
  • l'option -n correspond a silencieux. Avec p pour print en fin de commande, seul les lignes sélectionnés sont affiché.
  • l'inconvénient de cette commande est qu'elle renvoi tout ce qui ce trouve après la clé+espaces ou tabulation+caractère de séparation. Notamment les commentaires si vous en avez mis sur la même ligne


Ici,les commentaires se trouvant sur la même ligne sont supprimé:
sed '/^cle[ \t]*[:=|][ \t]*/!d;s/[ \t]*//g;s/^cle[:=|]//;s/#.*//g' fichier.ini
  • /^cle[ \t]*[:=|][ \t]*/!d sélectionne la ligne commençant par cle avec le séparateur et supprime les autres
  • s/[ \t]*//g supprime les tabulations et espaces de la ligne.
  • s/^cle[:=|]// supprime la cle et le séparateur
  • s/#.*//g supprime les commentaires commençant par #
Outils personnels