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
한 줄에 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()에 대한 인수가 여러 줄에 걸쳐 있도록 허용합니다.
그러나 실패할 상황은 여전히 충분합니다.