Sed

De system.co.free.fr.
(Différences entre les versions)
(Truc et astuces)
(Truc et astuces)
Ligne 22 : Ligne 22 :
* é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>
* é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>
**<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 caractere diese et tout ce qui ce trouve apres, 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:47

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 =, : ou |.
sed -n 's/^cle[ \t]*[:=\|][ \t]*[ \t]*$//p' fichier.ini

l'option -n correspond a silentieux. Avec p pour print en fin de commande, seul les lignes selectionnés sont affiché.
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 =, : ou |.
    et 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