-2

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

我认为将该程序与 sed EG 结合使用:

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

例如:

<?php
function my_function() {

}
?>

变成:

<?php
function my_function() 
{

}
?>
4

2 回答 2

1

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

find . -type f -name "*.php" -exec sed -r -i 's/( *)(function.*|classes.*)\{/\1\2\n\1\{/' {} \;
于 2012-10-25T03:28:01.300 回答
0
find . -type f -name '*.php' -exec sed -E $'s/ *{$/\\\n{/' -i {} \;

*{用换行符和.替换行尾{

如果您只使用某些花括号(函数、类、try/catch)而不使用其他大括号(if、while 等),那么 shell 脚本可能证明是不够的。

于 2012-10-25T03:25:22.840 回答