sed给每个类成员函数加log

  • Post author:
  • Post category:其他



#!/bin/sh

if [ $# -ne 2 ];then

echo “Usage: $0 classname file”

exit

fi

function_name=$1

file=$2

logs=’LOG(INFO)<<“xxxxx: “<<__FUNCTION__’;


if [ $# -ge 3 ];then

echo “delete logs: $3…”

sed -i “/$logs/d” $file

exit

fi




sed -i “s/\($function_name::.*) *{$\)/\1\n$logs/g” $file

sed -i “/$function_name::.*[^{]$/,/) *{/s/) *{/&\n$logs/g” $file

解释以下最后两行: 主要以类名::和) { 来区分是否是一个类的成员函数. &表示前面匹配的内容. 也可以用下面6的插入命令实现

第一个sed替换例子为:

MediaPlayerBridge::Start() {   // 函数名及参数在一行

第二个sed替换的例子是:

MediaPlayerBridge::onMediaError(

JNIEnv* /* env */, jobject /* obj */, jint error_type) {   // 函数名及参数在多行


sed常用功能介绍(包含多行匹配及替换)


1. sed 参数

-i 表示inplace edit,就地修改文件
-r 表示搜索子目录


2.

删除:d命令





版权声明:本文为fingding原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。