我正在寻找构建一个全局杀死我的脚本中的短标签的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
答案 0 :(得分:1)
您可以尝试使用
sed 's/<[?]=\([^?]*\)/<?php echo \1; /g' file