Remplacement caractère fichiers CSH
Résolu/Fermé
bdssssss
Messages postés
9
Date d'inscription
mercredi 22 août 2012
Statut
Membre
Dernière intervention
28 août 2012
-
22 août 2012 à 09:53
bdssssss Messages postés 9 Date d'inscription mercredi 22 août 2012 Statut Membre Dernière intervention 28 août 2012 - 22 août 2012 à 10:41
bdssssss Messages postés 9 Date d'inscription mercredi 22 août 2012 Statut Membre Dernière intervention 28 août 2012 - 22 août 2012 à 10:41
A voir également:
- Remplacement caractère fichiers CSH
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Caractère spéciaux mac clavier - Guide
2 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
22 août 2012 à 09:57
22 août 2012 à 09:57
Salut,
Le shell n'a rien à voir avec ton problème dans la mesure où c'est "sed" qui fait le travail.
Peut être serait-il bien que tu précises ton système ainsi que la version de "sed".
Le shell n'a rien à voir avec ton problème dans la mesure où c'est "sed" qui fait le travail.
Peut être serait-il bien que tu précises ton système ainsi que la version de "sed".
bdssssss
Messages postés
9
Date d'inscription
mercredi 22 août 2012
Statut
Membre
Dernière intervention
28 août 2012
22 août 2012 à 10:02
22 août 2012 à 10:02
Merci.
- La version de sed est la version 4.2.1 (j'ai fait "man sed" pour voir ça).
- Concernant mon système, je travaille sous linux GNOME. Je ne sais pas quelle information tu veux avoir en particulier...
- La version de sed est la version 4.2.1 (j'ai fait "man sed" pour voir ça).
- Concernant mon système, je travaille sous linux GNOME. Je ne sais pas quelle information tu veux avoir en particulier...
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
22 août 2012 à 10:07
22 août 2012 à 10:07
Linux Gnome ce n'est pas un système, Linux est un noyau et Gnome un bureau graphique ;-(
Quelle distribution ? Ubuntu ? Debian ? Fedora ? etc.
Sinon il n'y a pas de raison que ça ne marche pas avec "csh", la preuve :
Quelle distribution ? Ubuntu ? Debian ? Fedora ? etc.
Sinon il n'y a pas de raison que ça ne marche pas avec "csh", la preuve :
$ csh % sed '/texte/ {s/chaine_a_remplacer/nouvelle_chaine/}' plop ... blablabla : chaine_a_remplacer texte : nouvelle_chaine blablabla : chaine_a_remplacer ... % exit $
bdssssss
Messages postés
9
Date d'inscription
mercredi 22 août 2012
Statut
Membre
Dernière intervention
28 août 2012
22 août 2012 à 10:31
22 août 2012 à 10:31
Merci pour ta réponse. Désolé, je ne suis pas trop calé en informatique. Ma distribution est debian...
Mais je pense avoir trouvé la source de mon problème! En fait, je tape la commande :
set arg1 = 'chaine_a_remplacer'
set arg2 = 'nouvelle_chaine'
sed -e ' /texte/ {s/$arg1/$arg2/g}' fichier.txt
Cette commande ne fonctionne pas (avec les arguments $arg1 et $arg2). Remarque : Si je fais echo $arg1 et $arg2, les arguments sont bien définis.
En revanche, quand je tape :
sed -e ' /texte/ {s/chaine_a_remplacer/nouvelle_chaine/g}' fichier.txt
ça marche. Autrement dit, quand je n'utilise pas de variable avec les "$". Tu aurais une idée?
Mais je pense avoir trouvé la source de mon problème! En fait, je tape la commande :
set arg1 = 'chaine_a_remplacer'
set arg2 = 'nouvelle_chaine'
sed -e ' /texte/ {s/$arg1/$arg2/g}' fichier.txt
Cette commande ne fonctionne pas (avec les arguments $arg1 et $arg2). Remarque : Si je fais echo $arg1 et $arg2, les arguments sont bien définis.
En revanche, quand je tape :
sed -e ' /texte/ {s/chaine_a_remplacer/nouvelle_chaine/g}' fichier.txt
ça marche. Autrement dit, quand je n'utilise pas de variable avec les "$". Tu aurais une idée?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
Modifié par zipe31 le 22/08/2012 à 10:42
Modifié par zipe31 le 22/08/2012 à 10:42
Ben voila quand on explique clairement son problème on y voit bien mieux ;-)
Ton problème vient des variables qui ne sont pas interprétées dans l'expression à cause des quotes simples qui l'entourent ;-(
Deux solutions :
- Soit tu entoures l'expression avec des quotes doubles :
- Soit tu laisses les quotes simples, mais il faut à ce moment là sortir de l'expression et re-rentrer par la suite :
Ton problème vient des variables qui ne sont pas interprétées dans l'expression à cause des quotes simples qui l'entourent ;-(
Deux solutions :
- Soit tu entoures l'expression avec des quotes doubles :
sed -e " /texte/ {s/$arg1/$arg2/g}" fichier.txt
- Soit tu laisses les quotes simples, mais il faut à ce moment là sortir de l'expression et re-rentrer par la suite :
sed -e ' /texte/ {s/'"$arg1"'/'"$arg2"'/g}' fichier.txt
bdssssss
Messages postés
9
Date d'inscription
mercredi 22 août 2012
Statut
Membre
Dernière intervention
28 août 2012
22 août 2012 à 10:41
22 août 2012 à 10:41
Trop fort. Ça marche! Merci beaucoup zipe. La prochaine fois, j'expliquerai mieux le problème à la base :-)
Bonne journée!
Bonne journée!