Article original Publié le : 09 aout 2021 Mise a jour le : |
Sed est un outil puissant qui permet d’ajouter, modifier, supprimer un caractère, une chaîne de caractères ..
Quelques exemples
- Supprime toutes les lignes ou il y a le mot Ubuntu
1 |
$ sed -i '/Ubuntu/d' nom_du_fichier |
- Supprime toutes les lignes ou le mot Ubuntu est le premier mot
1 |
$ sed -i '/^Ubuntu/d' nom_du_fichier |
- Remplacement d’une chaîne de caractère
1 |
$ sed -i "s/texte_a_remplacer/texte_en_remplacement/g" nom_du_fichier |
- Remplacement d’une chaîne avec des caractères spéciaux
1 |
$ sed -i -e 's|http://xxx|https://xxx|g' nom_du_fichier |
ou
1 |
$ sed -i 's#http://xxx#https://xxx#g' nom_du_fichier |
- Exemple pour le ntp.conf
1 |
$ sudo sed -i -e "s|NTPD_OPTS='-g'|NTPD_OPTS='-4 -g'|g" /etc/default/ntp |
- Supprimer tout le texte avant xxx
1 |
$ sed -i 's/.*xxx//g' nom_du_fichier |
- Ajouter un ou une chaine de caractère a la fin de chaque ligne d’un fichier
1 |
$ sed -i 's/$/ma_chaine_de_caractere,/g' nom_du_fichier |
- On peut aussi rediriger le résultat vers un autre fichier pour garder conforme l’original
1 |
$ sed -i 's/$/ma_chaine_de_caractere,/g' nom_du_fichier > nouveau_nom_du_fichier_avec_modif |
- Ajouter un saut de ligne a chaque fin de ligne
1 |
$ sed -i 's/$/\n/g' nom_du_fichier |
- Remplacer un texte dans plusieurs fichiers d’un chemin donnée
1 |
$ grep -r "mon_texte_a_rechercher" chemin | cut -d":" -f1 | xargs -I % sed -i "s/mon_texte_a_rechercher/mon_texte_a_remplacer/g" % |
- Supprimer les lignes comprenant un pattern (sortie standard)
1 |
$ sed '/chaine_de_caracteres/d' nom_du_fichier |
- Supprimer tous les commentaires
1 |
$ sed -i '/^#/d' nom_fichier |
Les Regex
^ Un début de ligne.
$ Fin de ligne.