Bash va être mieux que sed
si vous vous inquiétez au sujet de vos chaînes ayant potentiellement regex caractères.
echo ${firstString/Suzi/$secondString}
Il est vraiment sûr à utiliser et fonctionne avec au moins aussi vieux que Bash 3.1 (Bash pour Windows). Afin portables et coffre-fort.
Pour montrer combien vous vraiment n'avez pas besoin de vous soucier de s'échapper: nous allons faire ce chemin:
/home/name/foo/bar
dans:
~/foo/bar
Mais seulement si /home/nom est dans le début. Nous n'avons pas besoin sed
!
Étant donné que bash nous donne la magie des variables $PWD
et $HOME
, nous pouvons:
echo "${PWD/#$HOME/~}"
Notez comment la variable $HOME
contient des barres obliques, mais cela n'a rien cassé.
Lecture recommandée: Advanced Bash Scripting Guide.
Si vous insistez sur l'utilisation d' sed
, assurez-vous de s'échapper de chaque personnage et de son chien.