Sed

De system.co.free.fr.
(Différences entre les versions)
(Truc et astuces)
(Truc et astuces)
Ligne 14 : Ligne 14 :
==Truc et astuces==
==Truc et astuces==
-
* récupérer une valeur dans un fichier contenant cle=valeur, avec une cle unique. Le séparateur peut être <b>=, : </b>ou<b> |</b>.<br>
+
===récupérer une valeur dans un fichier contenant cle=valeur, avec une cle unique===
 +
Le séparateur peut être <b>= : |</b><br>
<pre>sed -n 's/^cle[ \t]*[:=\|][ \t]*[ \t]*$//p' fichier.ini</pre>
<pre>sed -n 's/^cle[ \t]*[:=\|][ \t]*[ \t]*$//p' fichier.ini</pre>
-
l'option -n correspond a silentieux. Avec p pour print en fin de commande, seul les lignes selectionnés sont affiché.
+
*l'option -n correspond a silencieux. Avec p pour print en fin de commande, seul les lignes sélectionnés sont affiché.
-
<br>
+
*L'inconvienuent de cette commande est qu'elle renvoi tout ce qui ce trouve après des espaces ou tabulation derriere le caractère de separation. Notamment les commentaires si vous en avez mis.
-
L'inconvienuent de cette commande est qu'elle renvoi tout ce qui ce trouve apres des espaces ou tabultation derriere le caractere de separation. Notament les commentaires si vous en avez mis.
+
-
* écupérer une valeur dans un fichier contenant cle=valeur, avec une cle unique. Le séparateur peut être <b>=, : </b>ou<b> |</b>.<br> et les commentaires se trouvant sur la meme ligne sont supprimé:<pre>sed '/^cle[ \t]*[:=\|][ \t]*/!d;s/^cle[ \t]*[:=\|][ \t]*//;s/#.*//' fichier.ini</pre>
+
* Ici,les commentaires se trouvant sur la meme ligne sont supprimé:<pre>sed '/^cle[ \t]*[:=\|][ \t]*/!d;s/^cle[ \t]*[:=\|][ \t]*//;s/#.*//' fichier.ini</pre>
**<b>/^cle[ \t]*[:=\|][ \t]*/!d</b> va retenir la ligne commencant par cle avec le séparateur
**<b>/^cle[ \t]*[:=\|][ \t]*/!d</b> va retenir la ligne commencant par cle avec le séparateur
**<b>s/^cle[ \t]*[:=\|][ \t]*//</b> supprime la cle, le separateur et les espaces et tabulations se trouvant autour du separateur.
**<b>s/^cle[ \t]*[:=\|][ \t]*//</b> supprime la cle, le separateur et les espaces et tabulations se trouvant autour du separateur.
**<b>;s/#.*//</b> supprime le caractère dièse et tout ce qui ce trouve après, soit les commentaires.
**<b>;s/#.*//</b> supprime le caractère dièse et tout ce qui ce trouve après, soit les commentaires.

Version du 17 septembre 2014 à 12:50

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


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]*[ \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'inconvienuent de cette commande est qu'elle renvoi tout ce qui ce trouve après des espaces ou tabulation derriere le caractère de separation. Notamment les commentaires si vous en avez mis.
  • Ici,les commentaires se trouvant sur la meme ligne sont supprimé:
    sed '/^cle[ \t]*[:=\|][ \t]*/!d;s/^cle[ \t]*[:=\|][ \t]*//;s/#.*//' fichier.ini
    • /^cle[ \t]*[:=\|][ \t]*/!d va retenir la ligne commencant par cle avec le séparateur
    • s/^cle[ \t]*[:=\|][ \t]*// supprime la cle, le separateur et les espaces et tabulations se trouvant autour du separateur.
    • ;s/#.*// supprime le caractère dièse et tout ce qui ce trouve après, soit les commentaires.
Outils personnels