
file.php
私はPHP印刷テキストがたくさんあると言うことができます<?php print t('Blabla'); ?>
:<?php print t('Text Here'); ?>
など。
私が必要とするのは、<?php print t('
PHP'); ?>
印刷テキストを削除することです。
だから、<?php print t('Blabla'); ?>
なりますBlabla
、<?php print t('Text Here'); ?>
なりますなどですText Here
。
sed
1行にPHP印刷テキストが含まれている場合は、置換を使用する方法を知っていると思います。しかし、長い行に複数のPHP印刷テキストが含まれている場合はどうなりますか?
交換する方法を知りたいです。
答え1
私の考えでは、あなたの意図は、PHPスクリプトから古い国際化システムを削除することです。
perl -e 'undef$/;$s=<>;$s=~s/<\?php\s+(?:print|echo)\s+t\((['"'"'"])(.*?)\1\);\s+\?>/$2/gs;print$s' apasajja
質問に提案されていないいくつかの改善点があります。
print
または両方に適用されますecho
。- 一重引用符と二重引用符に適用されます。
<?php
..?>
タグが別々の行に表示されるようにします。- t() の引数が複数行に渡るようにします。
しかし、失敗する状況はまだ十分です。