我的智能模板文件中有很多字段。
{$email} (this can be anything like -- {$description}, {$variable_name}
我想将其替换为{$email|escape:htmlall}
或{$ variable_name}
我怎么能在linux中这样做?我在sed中编写正则表达式时遇到了困难。
答案 0 :(得分:1)
尝试:
sed 's/{\(\$[^}\|]*\)}/{\1|escape:htmlall}/g'
作为测试,请使用:
echo 'blabla {$email} blieblie {$name} bloebloe ${alreadydone|escape:htmlall}'|sed 's/{\(\$[^}\|]*\)}/{\1|escape:htmlall}/gi'
这个正则表达式的作用:
答案 1 :(得分:0)
perl -ape 's/({\$\w+)(?!\|escape:htmlall)}/$1|escape:htmlall}/g' file
这是使用否定前瞻功能。
这将忽略已经有转义的变量:htmlall。
答案 2 :(得分:0)
之前进行备份并试一试:
grep -rl "{$email}" yourdirectory | xargs sed -i 's/\{\$email\}/{$email|escape:htmlall}/g'