上来抱怨一句,SED也是老夫子

这两天在做linux C 编程和make方法 第7部分,补充的Makefile的自动化脚本。用脚本检查Makefile文件的模块名和C文件信息,然后调用gcc -MM生成依赖信息,再写回Makefiile,以方便大家可以直接通过Makefile的自动生成部分,检测模块内文件的依赖是否完整。

基本上就用sed了,即便是sed也已经让我转来转去。发现sed也是一个目标N种方法。

例如为了从路径名中获取文件名。

从A/B/C/D/E/F,获取F,

以前这种变态的事情都是用C做的。现在用SED,发现也有N种方法。

目前暂时用

MODULE_SRC=`echo $MODULE_PATH|sed -n "s/^.*[^\/]//"`的方式。

就是把MODULE_PATH的内容传递到后面给sed操作,用``将数据转给MODULE_SRC。

^.*是查找从起始开始,任意字符任意数量,而 [^\/]是同时必须要有个 ‘/’字符。

然后把符合上面条件的全部删除掉,余下的给了MODULE_SRC。

网上没查到资料。这个方法是最后才试出来的。前面用了其他几种方法也行。

脚本语言真TMD悲摧,又要符合人的思维描述,又想高效实现。我发现我的思维还是比较贴近计算机本身或者做市场或商务的人群,而不是卡在中间的脚本。如果是C做,就EASY很多


1char * get_file_name(char *path_file_name){
2    char *re = 0;
3    char *p = path_file_name;
4    while (*p){
5        if (*p == '/') re = p+1;
6        p++;
7    }
8    return (re) ? re : path_file_name;
9}

转载于:https://my.oschina.net/luckystar/blog/67085

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值