免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1372 | 回复: 7
打印 上一主题 下一主题

请问这个shell该怎么写 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-29 08:27 |只看该作者 |倒序浏览
问题是:
     我想在程序中的每个函数开始的第一行添加上我的输出信息.
如下:
static int Fun(....)
{
..........
}
变成如下:
static int Fun(.....)
{
printf("ok \n");
..........
}

不知道问题是否表达明白.

我昨晚想过了,应该有两种思路:
1:在一行中查找" ( ",之后在下一行,确认是否有" { ",,,如果有,就在下一行添加

2:在行中查找,,第一个位置是" { " 这个符号,如果是,,就添加


可是,我不知道该怎么写脚本,请问怎么写????

谢谢.

论坛徽章:
0
2 [报告]
发表于 2006-11-29 08:46 |只看该作者
补一下,希望能变成这样
如下:
static int Fun(....)
{
..........
}
变成如下:
static int Fun(.....)
{
printf("Fun(....) ok \n");
..........
}

就是能得到函数的名称

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2006-11-29 09:16 |只看该作者
sed '/^[     ]*static int/{N; s/)[   ]*\n[   ]*{/&\nprintf("Fun(....) ok \\n");/}' ur-flie

论坛徽章:
0
4 [报告]
发表于 2006-11-29 09:41 |只看该作者
我想你还是没有弄清楚
Fun(....)        这个是可变化的

论坛徽章:
0
5 [报告]
发表于 2006-11-29 09:47 |只看该作者
我想了一下,好像可以这样:
sed 's/{/{\n\tprintf("ok");/' myfile

我看了一下也是可以成功的, 但是,我很想 在 printf里面显示出我这个函数的名称.

好像得需要得到上一行的一些什么东西哈...

论坛徽章:
0
6 [报告]
发表于 2006-11-29 15:54 |只看该作者
#Here comes my bash.
lookdir=/home

for b
in `ls $lookdir`;
do
        if [ $b == *.c ] ; then
                d=$lookdir/$b;
                sed 's/^{$/{\n\t printf("%s\\n",__FUNCTION__);/' $d > $d+1;
                rm $d;
                mv $d+1 $d;
        fi
done


可以实现啦....
谢谢朋友们的帮助.  偶是需要学习滴.

论坛徽章:
0
7 [报告]
发表于 2006-11-30 00:30 |只看该作者
恩,学习了,今天知道了这个宏__FUNCTION__

论坛徽章:
0
8 [报告]
发表于 2006-11-30 14:08 |只看该作者
"__FUNCTION__"与"__LINE__"等宏不一样,它不是宏,是编译器内置的const char * 变量
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP