我確定提問者已經在3年後繼續工作了,但如果其他人對此感興趣,可以使用模塊化方式完成任務。
hasA = $(findstring A,$(1))
lastN = $(shell echo -n $(1) | tail -c $(2))
firstN = $(shell echo -n $(1) | head -c $(2))
smack0 = $(1)0$(2)
AFormat = $(call smack0,$(call firstN,$(1),4),$(call lastN,$(1),5))
myFormat = $(if $(call hasA,$(1)),$(call AFormat,$(1)),$(1))
func9 = $(call myFormat,$(call lastN,$(1),9))
# AFormat = smack0 (firstN (string,4),lastN (string,5))
# myFormat = hasA (string) ? AFormat (string) : string
# func9 = myFormat (last9 (string))
test:
@echo hasA "(1234B66547) ->" $(call hasA,1234B66547)
@echo lastN "(RosieODonnellSuperManVelociraptor123456789,9) ->" $(call lastN ,RosieODonnellSuperManVelociraptor123456789,9)
@echo smack0 "(1234,0,ABCD) ->" $(call smack0,1234,ABCD)
@echo func9 "(S12a1234A5678) ->" $(call func9,S12a1234A5678)
@echo func9 "(S123a1234A5678) ->" $(call func9,S123a1234A5678)
@echo func9 "(S123123456789) ->" $(call func9,S123123456789)
誠然,你可以認爲這是可以自動「func9」 &調用該W/$(shell func9 $(STR))
但誰知道,也許你不希望打擾節省了微小的任務只是寫一個腳本 變化腳本,只有一些相關的使配方&你寧願將它保存在一些助手的生成文件。
- 歡呼!
sed的**被**「脫殼而出」 – hd1