sed : chercher et remplacer
Souvent on aimerait chercher une chaîne de caractères et les remplacer par autre chose dans le flux sortant.
L'outil sed
(stream editor) est très utile pour cela.
Par exemple, pour remplace tous les mots hello
par goodbye
:
Avec sed
, on structure notre paramètre entrant avec un opérateur suivi par les paramètres. Ici :
s
: veut dire substitution (chercher et remplacer). On attend 2 paramtètres suivants, séparés par les slash/
hello
: veut dire qu'on cherche le mothello
goodbye
: le texte à utiliser pour remplacerhello
Lisez plus sur la commande sed
:
man sed
Exercice
Pour créer vos comptes sur mon serveur, j'ai du lire un fichier contenant vos adresses email, et :
Les filtrer : seulement les adresses e-mail valables sont prises. Les lignes vides ou les e-mails non-valables sont ignorés
Les transformer :
enlever du blanc avant et après l'adresse
convertir le texte en miniscule uniquement
remplacer l'arobase
@
par un point.
Un exemple d'un fichier de ce type se trouve dans email-dirty.txt
.
Construisez, en une ligne, un enchaînement de commandes qui traite ce fichier et qui sort sur stdout
la liste d'emails propres.
Astuce : consulter les mots-clés spéciaux de la norme POSIX. Vous pouvez aussi chercher sur Google !
Dernière mise à jour
Comment supprimer les lignes contenant une instance de texte ?
Utiliser l'instruction `d` (delete)