私の smarty テンプレート ファイルには、このような多くのフィールドがあります。
{$email} (this can be anything like -- {$description}, {$variable_name}
{$email|escape:htmlall}
or {$variable_name}に置き換えたい
どうすればLinuxでそれを行うことができますか? sed で正規表現を書くのに苦労しています。
試す:
sed 's/{\(\$[^}\|]*\)}/{\1|escape:htmlall}/g'
テストとして、次を使用します。
echo 'blabla {$email} blieblie {$name} bloebloe ${alreadydone|escape:htmlall}'|sed 's/{\(\$[^}\|]*\)}/{\1|escape:htmlall}/gi'
この正規表現が行うこと:
perl -ape 's/({\$\w+)(?!\|escape:htmlall)}/$1|escape:htmlall}/g' file
これは、否定先読み機能を使用しています。
これにより、既に escape:htmlall を持つ変数は無視されます。
前にバックアップを作成して、これを試してください:
grep -rl "{$email}" yourdirectory | xargs sed -i 's/\{\$email\}/{$email|escape:htmlall}/g'