Bash脚本在PHP代码中的每个花括号之前添加一行

时间:2012-10-25 03:14:58

标签: php bash sed find

我需要创建一个bash脚本,在函数,类(类和方法)和try / catch块的每个大括号之前添加一行

我认为将该程序与sed E.G。结合使用:

*find . -type f \( -name "*.php \) -exec sed .......*

例如:

<?php
function my_function() {

}
?>

变为:

<?php
function my_function() 
{

}
?>

2 个答案:

答案 0 :(得分:1)

这是使用GNU findGNU sed的一种方式。它适用于函数和类。您可以相应调整以修复您选择的其他块。此解决方案还保留了前导空格,您可能会发现它有用。

find . -type f -name "*.php" -exec sed -r -i 's/( *)(function.*|classes.*)\{/\1\2\n\1\{/' {} \;

答案 1 :(得分:0)

find . -type f -name '*.php' -exec sed -E $'s/ *{$/\\\n{/' -i {} \;

使用换行符和*{替换该行末尾的{

如果你只是做一些花括号(函数,类,try / catch)而不是其他(如果,等等),那么shell脚本可能证明是不合适的。