(→SED, les bases et truc et astuces) |
(→Truc et astuces) |
||
Ligne 23 : | Ligne 23 : | ||
<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 silencieux. Avec p pour print en fin de commande, seul les lignes sélectionné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é. | ||
- | * | + | *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><br> | |
- | + | Ici,les commentaires se trouvant sur la même 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 | + | **<b>/^cle[ \t]*[:=\|][ \t]*/!d</b> va retenir la ligne commençant par cle avec le séparateur |
- | **<b>s/^cle[ \t]*[:=\|][ \t]*//</b> supprime la cle, le | + | **<b>s/^cle[ \t]*[:=\|][ \t]*//</b> supprime la cle, le séparateur et les espaces et tabulations se trouvant autour du séparateur. |
**<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. |
Sommaire |
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
[ ] 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
Le séparateur peut être = : |
sed -n 's/^cle[ \t]*[:=\|][ \t]*[ \t]*$//p' fichier.ini
sed '/^cle[ \t]*[:=\|][ \t]*/!d;s/^cle[ \t]*[:=\|][ \t]*//;s/#.*//' fichier.ini