Ceci est une ancienne révision du document !
sed est un outils très puissant permettant de transformer le texte du flux entrant.
Prenons un fichier exemple
toto 1234 toto titi tata 4321 toto tutu
Pour remplacer toto par koko on utilise le s pour substitution
sed -e 's/toto/koko/' fichier.txt
koko 1234 toto titi tata 4321 koko tutu
On peut remarquer que seul la 1ère occurence est remplacé, pour remplacer toutes les occurences, on utilise l’option g à la fin de la commande
sed -e 's/toto/koko/g' fichier.txt
koko 1234 koko titi tata 4321 koko tutu
Pratique pour par exemple remplacer tous les e avec accent par un e sans accent.
sed -e 'y/éèêë/eeee/' fichier.txt
Ou pour crypter/décrypter
sed -e 'y/abcdefghijklmnopqrstuvwxyz/mnopqrstuvwxyzabcdefghijkl/' fichier.txt
Pour supprimer toutes les lignes de commentaire qui commence par exemple par #, on utilise l’option d pour delete à la fin de la commande
sed -e '/^#/d' fichier.txt
Exemple avec un fichier de conf qui comporte des lignes commentés avec un ; et qui comportent beaucoup de lignes vide.
sed -e '/^[#;]/d;/^$/d' /etc/samba/smb.conf
Avec les [ ] et spécifie que la ligne commente par un # ou un ;. Le ; suivant veut dire que nous lançons une autre commande, celle ci dit que nous cherchons une ligne vide. ^ indique le début de la ligne et $ la fin. /d on delete.