免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1265 | 回复: 2

[文本处理] 给每个makefile加prefix [复制链接]

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
发表于 2016-07-19 11:03 |显示全部楼层
本帖最后由 linuxfellow 于 2016-07-19 11:30 编辑

想给目录下每个package makefile加prefix
当前目录下有很多sub package, 每个子 package有一个目录,目录名字就是子package的名字
每个子目录下有一个名字为<sub_pack_name>.mk的makefile

要求寻找当前目录下所有 ./<sub_pack_name>/<sub_pack_name>.mk, 在./<sub_pack_name>/<sub_pack_name>.mk的第一个空行之后加下面一行:
   SUB_PACK_NAME_PREFIX =verity

例如有两个子包abc, def
./abc/abc.mk 里的第一个空行后加 ABC_PREFIX=verity
./def/def.mk  里的第一个空行后加 DEF_PREFIX=verity

shell scripts如何实现请高手帮忙! 多谢!

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2016-07-19 15:11 |显示全部楼层
本帖最后由 jason680 于 2016-07-19 15:13 编辑

回复 1# linuxfellow

$ find .
.
./def
./def/def.h
./def/def.mk
./def/def.c
./abc
./abc/abc.h
./abc/abc.mk
./abc/abc.c

$ find . -name "*.mk" | xargs grep ".*"
./def/def.mk:3
./def/def.mk:
./def/def.mk:4
./def/def.mk:
./def/def.mk:5
./abc/abc.mk:1
./abc/abc.mk:
./abc/abc.mk:2
./abc/abc.mk:
./abc/abc.mk:3

$ find . -name "*.mk" | xargs perl -i -lpe '{if(m/^\s*$/&&++$h{$ARGV,$c}==1){($F=uc$ARGV)=~s/(^.*\/|[.]MK$)//g;$_.="\n${F}_PREFIX=verity"}}'

$ find . -name "*.mk" | xargs grep ".*"
./def/def.mk:3
./def/def.mk:
./def/def.mk:DEF_PREFIX=verity
./def/def.mk:4
./def/def.mk:
./def/def.mk:5
./abc/abc.mk:1
./abc/abc.mk:
./abc/abc.mk:ABC_PREFIX=verity
./abc/abc.mk:2
./abc/abc.mk:
./abc/abc.mk:3


   

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
发表于 2016-07-20 08:21 |显示全部楼层
回复 2# jason680
万分感谢!scripts很好用,问题解决了


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP