我正在尝试在Javascript中查找函数名称并插入以下代码
var functionName = arguments.callee.toString().substr('function '.length);
functionName = functionName .substr(0,functionName .indexOf('('));
console.log(functionName);
这将在调用时将函数名称写入控制台。我没有太多运气。我一直在用sed.exe尝试变种:
sed "{/function/ s/$/\var ownName = arguments.callee.toString().substr('function '.length);ownName = ownName.substr(0,ownName.indexOf('('));console.log(ownName);/}" *.js
这只是sed "/elephant/ s/$/\&castle" *.js
任何人都知道如何发送我要附加到下一行的内容,而不是与函数在同一行?另外,我如何能够使用以下内容(但在sed.exe中)以避免匿名函数和eval函数?
grep -Eho "^s*function w+" *.js | sort
感谢您的帮助。
答案 0 :(得分:0)
将\n
添加到替换字符串中适用于GNU sed。我将grep的正则表达式更改为^[[:blank:]]*function \w\+
用于sed,并将s
语句的条件更改为,并且它正常工作。这是bash语法中的整个命令:
sed "/^[[:blank:]]*function \\w\\+/ s/\$/\\nvar ownName = arguments.callee.toString().substr('function '.length);\\nownName = ownName.substr(0,ownName.indexOf('('));\\nconsole.log(ownName);\\n/" *.js