博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
上来抱怨一句,SED也是老夫子
阅读量:6995 次
发布时间:2019-06-27

本文共 794 字,大约阅读时间需要 2 分钟。

hot3.png

这两天在做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很多

1 char * 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

你可能感兴趣的文章