« Sed » : différence entre les versions

De wiki jackbot
Aller à la navigation Aller à la recherche
(Page créée avec « Category:Informatique sed est un outil en ligne de commande permettant la manipulation de texte. Quand les modifications d'un fichier risque d'être longues et fastid... »)
 
(Aucune différence)

Version actuelle datée du 12 janvier 2020 à 23:03


sed est un outil en ligne de commande permettant la manipulation de texte. Quand les modifications d'un fichier risque d'être longues et fastidieuses, il faut faire appel à sed. Voici une liste de commande très utile :

sed -i 's/un_mot/un_autre_mot/g' fichier.txt

Cette ligne de commande va remplacer toutes les occurrences de : "un_mot" par : "un_autre_mot" dans le fichier.txt

Mais il peut arriver qu'on souhaite modifier du texte qu'on ne connaît pas, c'est là qu'intervienne les expressions régulières ou regex.

sed -i 's/<balise>.*<\/balise>/<balise>nouveau contenu<\/balise>/g' fichier.xml

Dans ce cas l'expression régulière '.' correspond à n'importe quel caractère et '*' à n'importe quelle quantité. En d'autres termes peut importe les caractères et leur nombre, tout ce qui se trouve entre les balises sera remplacé par "nouveau contenu". Il est à noté qu'ici il est nécessaire d'échapper le caractère '/' dans "</balise>", car il s'agit du même caractère qui est utilisé comme séparateur dans la commande sed. Heureusement il est tout à fait possible d'utiliser un autre séparateur. La commande :

sed -i 's:<balise>.*</balise>:<balise>nouveau contenu</balise>:g' fichier.xml

Donnera exactement le même résultat. Mais vu qu'on utilise le séparateur ':' pour la commande sed, il n'est plus nécessaire d'échapper le caractère '/' dans "</balise>"