Logging c/c+;的sed模式中的换行符+;功能
我想在给定文件夹下所有文件中所有函数的开头调用跟踪/日志函数。 例如, 来自Logging c/c+;的sed模式中的换行符+;功能,logging,replace,sed,str-replace,Logging,Replace,Sed,Str Replace,我想在给定文件夹下所有文件中所有函数的开头调用跟踪/日志函数。 例如, 来自 void getVal(int a) { return mArray[a]; } 至 void getVal(int a) {pr_debug(); return mArray[a]; } 因此,我尝试了以下方法,但没有成功。 查找soc-type f-exec sed-i's/)\n{\n/)\n{pr_debug()\n/g'{}\ 我寻找并尝试了其他方法,但没有成功 find soc -ex
void getVal(int a)
{
return mArray[a];
}
至
void getVal(int a)
{pr_debug();
return mArray[a];
}
因此,我尝试了以下方法,但没有成功。
查找soc-type f-exec sed-i's/)\n{\n/)\n{pr_debug()\n/g'{}\
我寻找并尝试了其他方法,但没有成功
find soc -exec sed -i 's/)\
> {\
> /)\
> {pr_debug();\
> /g' {} \;
find soc -type f -exec sed -i "s/)\\`echo -e '\n\r'`{\\`echo -e '\n\r'`/)\\`echo -e '\n\r'`{pr_debug()\\`echo -e '\n\r'`/g" {} \;
有人能帮我吗?你可以用这个
sed
sed 'N; s/)[ ]*\n{/&\npr_debug();/g'
(或)
说明:
N - will read next line and append
s/pattern/replace/ - normal substitution takes place
& - will replace with what exactly matched in pattern
编辑:
“查找”命令:
find . -type f -exec sed -i '/(.*)[ ]*$/{N; s/)[ ]*\n[ ]*{/&\npr_debug();/g}' {} \;
非常感谢。它起了作用。但我不知道它是如何工作的:)我现在理解了你的命令。我只是检查了一下,它在所有事件中都没有被替换。一些地方它被替换了,其他地方它已经离开了。所以,我看到了问题所在。@BalamuruganA,如果你面临问题,请查看更新(另一个
sed
)。非常好。它工作得很好。谢谢。我更新了我使用的命令。
find . -type f -exec sed -i '/(.*)[ ]*$/{N; s/)[ ]*\n[ ]*{/&\npr_debug();/g}' {} \;