这个语句分为好几层,我们一层一层来看

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. POJ-3984 迷宫问题 (BFS)

    题意:有一个\(5\)X\(5\)的\(01\)图,输出从左上角走到右下角的最短路径. 题解:基础的bfs,这里困难的是如何输出这个最短路径,我们可以用一个结构体来存点和路径,我们每次向外去拓展的时候 ...

  2. AtCoder AIsing Programming Contest 2020 D - Anything Goes to Zero (二进制,模拟)

    题意:给你一个长度为\(n\)的\(01\)串,从高位到低位遍历,对该位取反,用得到的十进制数\(mod\)所有位上\(1\)的个数,不断循环直到为\(0\),输出每次遍历时循环的次数. 题解:根据题 ...

  3. LSTM - 长短期记忆网络

    循环神经网络(RNN) 人们不是每一秒都从头开始思考,就像你阅读本文时,不会从头去重新学习一个文字,人类的思维是有持续性的.传统的卷积神经网络没有记忆,不能解决这一个问题,循环神经网络(Recurre ...

  4. Linux自带神器logrotate详解

    Linux自带神器logrotate详解 散尽浮华 运维 3天前   作者:散尽浮华 链接:https://www.cnblogs.com/kevingrace/p/6307298.html 对于 L ...

  5. 缓冲区溢出实验 1 strcpy

    实验代码 https://github.com/TouwaErioH/security/tree/master/stack%20overflow 实验目的 Buffer over flow 漏洞利用实 ...

  6. POJ 3415 Common Substrings(后缀数组 + 单调栈)题解

    题意: 给两个串\(A.B\),问你长度\(>=k\)的有几对公共子串 思路: 先想一个朴素算法: 把\(B\)接在\(A\)后面,然后去跑后缀数组,得到\(height\)数组,那么直接\(r ...

  7. go modules——HelloWorld示例

    go modules--HelloWorld示例 go modules 存在的意义是方便代码的共享(虽然这会使自己开发过程中有一些小小的麻烦) 开发第一步,创建一个github仓库,然后克隆到本地 首 ...

  8. Media Queries语法总结

    Media Queries的语法如下所示: @media [media_query] media_type and media_feature 使用Media Queries样式模块时都必须以&quo ...

  9. Sentry & React

    Sentry & React https://docs.sentry.io/platforms/javascript/guides/react/ https://docs.sentry.io/ ...

  10. 20 个使用原生 JavaScript 实现的 Web 项目

    20 个使用原生 JavaScript 实现的 Web 项目 20 vanilla JavaScript Web Projects https://github.com/learning-js-by- ...