2013-10-24 117 views
19

有沒有辦法從make中的字符串(一個路徑名)刪除前綴?刪除前綴與製造

舉個例子,假設我有串:

FILES = a/b/c.d a/b/e.f 

我想刪除a/,並留下b/c.d b/e.f

我一直在使用的dirnotdirbasename各種組合的嘗試GNU make manual,但似乎都沒有提供一個很好的解決方案。

$(dir $(FILE))  # a/b a/b 
$(notdir $(FILE)) # c.d e.f 
$(basename $(FILE)) # a/b/c a/b/e 

我發現要做到這一點,到目前爲止的唯一方法是:

$(join $(basename $(dir $(FILE))), $(notdir $(FILE))) 

這實在是醜陋和囉嗦。我真正需要的是某種$(removeprefix ...)函數。假設我知道要刪除的前綴(a/),這可以通過某種字符串操作來完成嗎?

回答

12

既然你說GNU做,爲什麼不乾脆:

$(FILE:a/%=%) 

+0

拉姆驅動器由anon downvote :( – MadScientist

+2

猜測,因爲上面有一個相同的答案...但顯然是在同一分鐘發佈!不幸的是:/ –