我一直在寻找一种可以在全球范围内杀死脚本中短标签的sed,因为有很多遗留的旧内容需要清除。我正在使用正则表达式,但是它很贪婪,因此我正在寻找一种非贪婪的sed来代替所有的出现
<\?=(.*)\?> ## Pattern
<?php echo $1; ?> ## Replacement
这将<?=$foo?>
变成<?php echo $foo; ?>
但也会<?=$foo?><?=$bar?>
变成<?php $foo?><?=$bar; ?>
并重复比赛的路线。
SED看起来像 sed -i -e "s/<?=\(.*\)?>/<?php echo \1; ?>/g" file
我的答案是假设
<?=$foo?><?=$bar?> ## in
<?php echo $foo; ?><?php echo $bar; ?> ## out
您可以尝试
sed 's/<[?]=\([^?]*\)/<?php echo \1; /g' file
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句