我需要创建一个 bash 脚本,在函数、类(类和方法)和 try/catch 块的每个大括号之前添加一行
我认为将该程序与 sed EG 结合使用:
*find . -type f \( -name "*.php \) -exec sed .......*
例如:
<?php
function my_function() {
}
?>
变成:
<?php
function my_function()
{
}
?>
GNU find
这是使用and的一种方法GNU sed
。它适用于函数和类。您可以相应地调整以修复您选择的其他块。此解决方案还保留前导空格,您可能会发现这很有帮助。
find . -type f -name "*.php" -exec sed -r -i 's/( *)(function.*|classes.*)\{/\1\2\n\1\{/' {} \;
find . -type f -name '*.php' -exec sed -E $'s/ *{$/\\\n{/' -i {} \;
*{
用换行符和.替换行尾{
。
如果您只使用某些花括号(函数、类、try/catch)而不使用其他大括号(if、while 等),那么 shell 脚本可能证明是不够的。