Bonjour,
Je cherche à remplacer avec Sed dans une expression de la forme /*/* par une expression de la forme \/*\/*
En gros, je récupère une information dans une variable, que j'insère dans un fichier temporaire afin de travailler sur la chaîne de caractère.
Je veux récupérer cette chaîne modifiée dans une variable pour ensuite l'insérer dans un autre fichier, avec Sed. C'est pourquoi je ne peux laisser les / tels quels, parce qu'ils sont interprétés, et je voudrais qu'ils ne le soient pas.
Je schématise:
saisie >> variable >> fichier temporaire pour travailler sur la chaîne >> variable >> Sed
En fait je me dis qu'il est peut être possible de directement travailler sur la variable mais je ne sais pas comment faire.
Je précise que mon script est en BASH.
Merci d'avance!

Du coup, le " saute:
sed ""$linenum" c\"$sline" ~/fstab
En mettant un espace, ce n'est pas mieux... simple quote ne change rien non plus...
De plus, lorsque je met:
sed ""$linenum" c\ "$sline" ~/fstab
il m'affiche à l'écran le contenu de $sline, avec un espace devant, mais ne l'écris pas dans le fichier. C'est bizarre, il n'y a aucune concaténation avec cat ou autre...
Je vous met la solution, si ça peut aider quelqu'un:
sed -i ''$linenum' c\ '$line'' ~/fstab #on laisse un espace après \ pour qu'il ne nous échappe pas '
sed -i 's/^ //' ~/fstab #on supprime le premier espace de la ligne.
Note: nécessite que ce soit la première ligne avec un espace au début, ou que ce soit la seule.