由于makefile编译所有子目录中 sed 's,/($*/)/.o[ :],/1.o $@ : ,g' <$@ > $@ 的解释
这个语句分为好几层,我们一层一层来看
1. sed 's,/($*/)/.o[ :],/1.o $@ : ,g' <$@ > $@
首先看加粗这一层,$@表示目标参数中的.d文件, ‘<’ 将.d文件的内容交给sed处理.
2. sed 's,/($*/)/.o[ :],/1.o $@ : ,g' <$@ > $@
这个 ’>‘ 将 sed处理之后的内容再返回给.d文件
3. 现在具体分析sed中的内容
由于sed中的分隔符可以自定义,这里的分割符为','逗号,逗号将整个语句分为四个部分
3.1 s,/($*/)/.o[ :],/1.o $@ : ,g
表示sed文件处理方式为替换文件内容,s,a,b 表示将a替换为b
3.2 's,/($*/)/.o[ :],/1.o $@ : ,g
/(/)表示保存文件的内容,$*表示文件名中除后缀名以外的文件名,同时可以使用/1来表示
.o 表示与 文件名中的.o匹配
[ :]中间是一个空格和一个分号,[]表示与其内容中的某一个字符匹配,因为.d中内容一般为 a.o : a.c a.h b.h之类的内容,[]中的内容对应':'以及左右的空格的内容。因此[ :]对应.o后面的空格或是分号。
3.3 's,/($*/)/.o[ :],/1.o $@ : ,g'
/1.o表示前面的$*,也就是a.o ;$@表示 a.d也就是.d文件,然后就是' : '
3.4 's,/($*/)/.o[ :],/1.o $@ : ,g'
g 获得内存缓冲区的内容,并替代当前模板块中的文本;
因此上述的内容就是将 a.o : a.c a.h b.h 替换为 a.o a.d : a.c a.h b.h
此上。
随机推荐
- 二叉树增删改查 && 程序实现
二叉排序树定义 一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值:(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值:(3)左.右子树也 ...
- Docker架构分解
Docker总架构分解Docker对使用者来讲是一个C/S模式的架构,而Docker的后端是一个非常松耦合的架构,模块各司其职,并有机组合,支撑Docker的运行. 用户是使用Docker Clien ...
- 数字千万别用puts!
为了图省事我好几次都习惯的用puts输出一些确定答案,比如直接puts("-1"); 每次都wa到心态崩溃才想起来数字不能用puts...
- codeforces 1045I Palindrome Pairs 【stl+构造】
题目:戳这里 题意:给1e5个字符串,问有多少对字符串组合,满足最多只有一种字符有奇数个. 解题思路:每种情况用map存一下就行了.感觉这题自己的代码思路比较清晰,所以写个题解记录一下 附ac代码: ...
- Chart.js & CPU 性能监控
Chart.js 可视化动态 CPU 性能监控 https://github.com/gildata/RAIO/issues/337 https://github.com/chartjs/Chart. ...
- Dart & basic
Dart & basic 2.4.0 Dart SDK https://github.com/dart-lang/sdk/releases https://github.com/dart-la ...
- 1月加密货币交易所访问量破3亿!NGK生态星空计划、NGK生态所带来双重利好!
据最新数据显示,2021年一月份,加密货币交易所网站的访问量急剧上升.约有3.44亿访问者涌入了加密货币交易所,超过2020年12月的1.96亿访问者总数,创2018年1月以来新高. 加密货币交易所网 ...
- HTTPS原理解析
HTTPS 一些概念 http 概述 HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议.其本身位于TCP/IP协议族的应用层. 特点 - 客户端&服务器 - ...
- C++算法代码——奖学金
题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1098 题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学 ...
- 03.Jupyter Notebook高级-魔法命令
%run %run C:\Users\User\Desktop\hello.py hello world %timeit %timeit L = [i for i in range(1000)] 29 ...