sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \


%.d: %.c

  $(CC) -M $(CPPFLAGS) $< > $@.$$$$; \

  sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \

  rm -f $@.$$$$

 

p-162:sed替換命令的格式是‘s///g’如果沒有g,則sed的替換操作只對文本中的第一次出現的匹配模式進行替換。關於‘s///’命令的另一個注意點是‘/’分隔符有許多替換選項。如果正在執行字符串替換,並且規則表達式或替換字符串中有許多斜杠,則可以通過在’s’之后指定一個不同的字符來更改分隔符。例如,下列將把所有出現的/usr/local替換成/usr:

         sed –e ‘s:/usr/local:/usr:g’ mylist.txt

在該例中,使用冒號作為分隔符。如果需要在規則表達式中使用分隔符,可以在它前面加入反斜杠。關於\(\)是保留的模式空間,參見p-70,$* 是makefile中匹配的“莖”,$$$$表示當前進程的進程號,命令行中還運用了輸入輸出重定向。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM