1. 程式人生 > >Makefile中字串操作函式

Makefile中字串操作函式

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"