2013-08-16 26 views
0

處理結腸癌在生成文件生成文件:如何在可變

a = d:\wuyu 

我的目的是:之前得到的部分。也就是說,在這個例子中是「d」。

使用b = $(patsubst :%,,$(a))沒有工作。變量「b」與變量「a」相同。使用

c = `echo $(a)|sed -e 's/:.*//'` 

確實有效。但它導致了另一個問題:*** multiple target patterns. Stop.做什麼,因爲在sed命令中有:。在sed中添加\無法使用。

因此,我該如何解決這個問題?

回答

2

patsubst不起作用,因爲您的模式是:%,它只會匹配以冒號開頭的字符串;您的字符串不以冒號開頭,因此不匹配,因此不執行替換。

您可以通過分割字符串分爲多個字做到這一點:

b = $(firstword $(subst :, ,$(a))) 
+0

謝謝。它確實有效。我不知道函數'firstword'。現在我瞭解它。 – warem

+0

miss')'最後。 – warem

+0

Gak謝謝@warem。我希望SO編輯有paren匹配:-) – MadScientist