我需要创建一个bash脚本,在函数,类(类和方法)和try / catch块的每个大括号之前添加一行
我认为将该程序与sed E.G。结合使用:
*find . -type f \( -name "*.php \) -exec sed .......*
例如:
<?php
function my_function() {
}
?>
变为:
<?php
function my_function()
{
}
?>
答案 0 :(得分:1)
这是使用GNU find
和GNU 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脚本可能证明是不合适的。