Makefile中字串操作函式
阿新 • • 發佈:2018-12-02
makefile函式呼叫的形式:
$(function args)
function:函式名
args: 函式引數。引數和函式名之間用空格或tab鍵隔開,多個引數之間用逗號隔開。
1、subst – 特定字串替換
$(subst from,to,text)
在文字"text"中使用"to"替換每一處"from"
例子:
$(subst ee,EE, feet on the street)
輸出:
2、patsubst – 類似正則表示式的替換
$(patsubst pattern,replacement,text)
尋找"text"中符合格式"pattern"的字,用"replacement"替換他們。"pattern"和"replacement"可以使用萬用字元(%)。
%萬用字元是Makfile內的;
*萬用字元是shell腳本里的。
例子:
$(patsubst %.c,%.o,x.c.c bar.c)
輸出結果為:
3、strip – 去除多餘空格
$(strip string)
去掉前導和結尾空格,並將中間的多個空格壓縮為單個空格
例子:
$(strip a b c)
輸出:a b c
4、findstring – 字串查詢
$(findstring find,in)
在in字串中尋找find字串,找到的話返回find否則返回空
例子:
$(findstring a, a b c) $(findstrinf a, b c)
輸出為:
a 和 " "
5、filter – 類似正則表示式的字元篩選操作
$(filter pattern..., text)
返回在"text"中用空格隔開且匹配格式"pattern…"的字,去除不符合格式"pattern…"的字。
例子:
$(filter %.c %.s, foo.c bar.c baz.s ugh.h)
輸出為:
foo.c bar.c baz.s
6、sort – 排序去重
$(sort list)
將"list"中的字按字母順序排序並去掉重複的字。輸出由單個空格隔開的字的列表
例子:
$(sort foo bar lose)
輸出:
"bar foo lose"