请问如下Sed语句的含义,谢谢

请问如下Sed语句的含义,谢谢

Makefile中
%.d: %.c
            @set -e; rm -f $@; \
             $(CC) -M $(CPPFLAGS) $< > $@.$$$$; \
             sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
             rm -f $@.$$$$
      请问sed语句中的\($*\)有什么作用,和\(.*\)有什么不同呢,我试了一下,发现使用\($*\)时,\1始终为空,谢谢!
正则表达式中^表示行首,$表示行尾
经过版主的解释,我不懂那个 \(.*\)中的‘.’是什么意思了,敬请版主解释,谢谢
.是任意匹配,你看过置顶帖??
看过,下下来看过好几次
来自原文:http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=112296
引用:
看了各个linux 论坛的帖子,感觉sed的介绍不少,但有点零乱,在这里整理一下,希望能对学习者有所帮助!
注:除了多个命令情况外,-e 选项可以不用!
基础:
正则表达式(Regular Expression)
在学习sed前,首先了解RE的基本知识,大体上最基本也需要知道下面这些,如果不了解正则表达式,那么您将很难进阶Smile
引用:

- 錨點(anchor)
用以標識 RE 於句子中的位置所在. 常見有:
^: 表示句首. 如 ^abc 表示以 abc 開首的句子.
$: 表示句尾. 如 abc$ 表示以 abc 結尾的句子.
\<: 表示詞首. 如 \<abc 表示以 abc 開首的詞.
\>: 表示詞尾. 如 abc\> 表示以 abc 結尾的詞.

- 修飾字符(modifier)
獨立表示時本身不具意義, 專門用以修改前一個 char. set 的出現次數. 常見有:
*: 表示前一個 char. set 的出現次數為 0 或多次. 如 ab*c 表示 a 與 c 之間可有 0 或多個 b 存在.
?: 表示前一個 char. set 的出現次數為 0 或 1 次. 如 ab?c 表示 a 與 c 之間可有 0 或 1 個 b 存在.
+: 表示前一個 char. set 的出現次數為 1 或多次. 如 ab+c 表示 a 與 c 之間可有 1 或多個 b 存在.
{n}: 表示前一個 char. set 的出現次數必須為 n 次. 如 ab{3,}c 表示 a 與 c 之間必須有 3 個 b 存在.{n,}: 表示前一個 char. set 的出現次數至少為 n 次. 如 ab{3,}c 表示 a 與 c 之間至少有 3 個 b 存在.
{n,m}: 表示前一個 char. set 的出現次數為 n 到 m 次. 如 ab{3,5}c 表示 a 與 c 之間有 3 到 5 個 b 存在.

. : 匹配任意一个字符(1个)
.*:匹配任意多个字符(1或多个)
感谢感谢,我说我怎么一点都不知道,原来那篇里有5个链接,我只下了4个,露掉了一个,真是不好意思
再请问一个问题,sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ 中\($*\)应该表示0个或多个行尾吧,那加上它有什么意义吗,makefile里会出现这种情况吗,是不是\($*\)有些多余啊,谢谢!
去掉试试
我试过的,有没有对结果都没有影响,可能是我太过于信任资料了,以至于总认为它有它的道理,呵呵