假设我知道someFile.php
包含 的定义someFunction()
。我该如何在 stdout 中显示整个函数体?如果我知道函数体有 10 行长,那么我会使用cat someFile.php | grep -A 10 "function someFunction"
[1],但实际上函数的长度可以是任意的。
我认为sed
我可以使用 Vimesque 命令,例如/function someFunction<Return>/{<Return>%
[2],但我不知道如何格式化它。理想情况下,函数前的 PHPDoc 将与函数一起输出。
任何帮助或相关手册的链接都将不胜感激。谢谢!
[1] 我知道这cat
是多余的,但是我发现这种格式更容易阅读。
[2] 找到函数定义,转到左括号,转到右括号
答案1
识别出现在函数末尾但不在函数主体中的正则表达式。
^}
可能会起作用。
sed –n '/function someFunction/,/^}/p' someFile.php
显然,如果函数前的 PHPDoc 以某个唯一字符串开头,则应使用该字符串而不是/function someFunction/
。否则,就没那么容易了;使用 可能可行awk
。