Sed avec variable contenant des caractères spéciaux
Résolu
Georges
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Sed avec variable contenant des caractères spéciaux
- Caractère spéciaux - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux mac - Guide
- Caractères ascii - Guide
- Raccourcis clavier word caractères spéciaux pdf - Guide
3 réponses
Salut,
Il suffit de changer le caractère délimiteur par défaut (le slash) par un autre caractère ne se trouvant pas dans ta variable.
Attention aux quotes aussi. Pour interpréter les variables dans une expression, soit il faut entourer l'expression entière par des quotes doubles, soit il faut sortir de l'expression en cas de quotes simples.
Il suffit de changer le caractère délimiteur par défaut (le slash) par un autre caractère ne se trouvant pas dans ta variable.
sed -i "\#${line}#d" 2.txt
Attention aux quotes aussi. Pour interpréter les variables dans une expression, soit il faut entourer l'expression entière par des quotes doubles, soit il faut sortir de l'expression en cas de quotes simples.
sed -i "\#${line}#d" 2.txt sed -i '\#'"${line}"'#d' 2.txt
salut,
accessoirement, une boucle for ne lit pas des lignes, mais des mots (tels que définis par l'IFS).
le mieux, pour lire un fichier, c'est d'utiliser une boucle while comme ça :
accessoirement, une boucle for ne lit pas des lignes, mais des mots (tels que définis par l'IFS).
le mieux, pour lire un fichier, c'est d'utiliser une boucle while comme ça :
while read line do echo "do stuff with \"$line\"" done < fichier
Merci pour ta réponse zipe31, j'ai testé et ce que tu as indiqué fonctionne parfaitement. Peux-tu juste m'indiquer à quoi correspond le \ devant le premier # dans
Merci également à qqchquicommenceparQ, j'ai modifié mon script en suivant ton conseil.
:)
sed -i "\#${line}#d" 2.txtet pourquoi il n'y a pas de \ devant le 2ème # ?
Merci également à qqchquicommenceparQ, j'ai modifié mon script en suivant ton conseil.
:)