Extrait du manuel infotex de GNU sed (voir info sed
):
La syntaxe du s
(comme dans substitut) est s/REGEXP/REPLACEMENT/FLAGS
. Le site /
les caractères peuvent être uniformément remplacé par tout autre caractère unique 1 au sein d'un même s
commande. Le site /
(ou tout autre caractère utilisé à sa place) ne peut apparaître dans la REGEXP ou le REPLACEMENT que s'il est précédé d'un signe \
caractère.
c'est-à-dire utiliser | comme délimiteur entre le REGEXP et le remplacement et la commande sed devient :
sed -i 's|"system_filter = /etc/define_filter_file"|"system_filter = /usr/local/etc/file_regex"|g' /etc/exi.conf.bak
ou en bref :
sed s|/some/path|/alternate/path/|
ce qui est beaucoup plus facile que l'alternative, l'échappement d'un grand nombre de barres obliques :
sed s/\/some\/path/\/alternate\/path\//
1. (Le <code>sed</code> sous OSX exclut explicitement la barre oblique inversée (backslash). \ et les caractères de nouvelle ligne de la qualification ci-dessus de <em>"tout autre caractère unique" </em>)