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
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/^cle[ \t]*[:=|][ \t]*//;s/[ \t]*#.*\|[ \t]*//g' fichier.ini
- /^cle[ \t]*[:=|][ \t]*/!d va retenir la ligne commençant par cle avec le séparateur
- s/^cle[ \t]*[:=|][ \t]*// supprime la cle, le séparateur et les espaces et tabulations se trouvant autour du séparateur.
- s/[ \t]*#.*\|[ \t]*//g supprime les tabulation et espace avant dièse, supprime le caractère dièse et tout ce qui ce trouve après, soit les commentaires.