Remplacer chaine de caractère par une autre
Résolu
youpi
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrais parcourir un texte et y remplacer certaines chaines de caractères par d'autres.
Je sais qu'on pourrait écrire le code en C facilement, mais je me demandais s'il y avait une fonction prête prédéfinie.
J'ai pensé à introduire la commande sed, mais elle traite les données lignes par lignes, alors que moi je veux que mon code aille chercher les chaines de caractères dans un texte, et meme au milieu des mots.
Quelqu'un sait s'il y a une option à rajouter à sed pour qu'elle fasse ce que je veux, ou connait peut etre une autre commande qui pourrait me servir?
Merci d'avance pour votre aide.
Je voudrais parcourir un texte et y remplacer certaines chaines de caractères par d'autres.
Je sais qu'on pourrait écrire le code en C facilement, mais je me demandais s'il y avait une fonction prête prédéfinie.
J'ai pensé à introduire la commande sed, mais elle traite les données lignes par lignes, alors que moi je veux que mon code aille chercher les chaines de caractères dans un texte, et meme au milieu des mots.
Quelqu'un sait s'il y a une option à rajouter à sed pour qu'elle fasse ce que je veux, ou connait peut etre une autre commande qui pourrait me servir?
Merci d'avance pour votre aide.
A voir également:
- Remplacer chaine de caractère par une autre
- Caractère ascii - Guide
- Remplacer disque dur par ssd - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Remplacant de coco - Accueil - Réseaux sociaux
3 réponses
Salut,
J'ai pensé à introduire la commande sed, mais elle traite les données lignes par lignes
Elle fait ça très bien normalement
Donne un exemple précis de ce que tu veux exactement :
Avant => Après
;-))
J'ai pensé à introduire la commande sed, mais elle traite les données lignes par lignes
Elle fait ça très bien normalement
Donne un exemple précis de ce que tu veux exactement :
Avant => Après
;-))
Tiens voilà un exemple qui modifie le fichier en place avec l'option "-i" (il faut avoir une version de sed supérieure 4.0.5), sans passer par un fichier temporaire :
[tmpfs]$ cat monfichier Aujourd'hui j'ai mang=E9 =E9pic=E9 Hier aussi j'ai mang=E9 =E9pic=E9 Et sûrement que demain aussi je mangerai =E9pic=E9 Mais en g=E9n=E9ral je ne mange jamais =E9pic=E9 [tmpfs]$ sed 's/=E9/é/g' monfichier Aujourd'hui j'ai mangé épicé Hier aussi j'ai mangé épicé Et sûrement que demain aussi je mangerai épicé Mais en général je ne mange jamais épicé [tmpfs]$ sed -i.bak 's/=E9/é/g' monfichier # modification sur place [tmpfs]$ cat monfichier Aujourd'hui j'ai mangé épicé Hier aussi j'ai mangé épicé Et sûrement que demain aussi je mangerai épicé Mais en général je ne mange jamais épicé [tmpfs]$;-))
J'ai tapé la commande sed -e "s/=E9/é/g" < monfichier > fich.tmp && mv -f fich.tmp monfichier (un truc du genre),
Mais ca ne marche pas .Et quand j'ai tapé seulement =E9 dans une ligne du fichier, sed l'a bien changé en é.
J'en ai deduit que ca lit toute la ligne, ca ne va pas chercher au milieu des mots.
Merci pour ton jipicy