浅显易懂 Makefile 入门 (05)— 字符串处理函数(patsubst、subst、strip、findstring、filter、filter-out、sort、word)
作者:互联网
1. 字符串函数格式
函数调用的格式如下:
$(<function> <arguments>)
或者是
${<function> <arguments>}
其中,
function
是函数名;arguments
是函数的参数,参数之间要用逗号分隔开;
而参数和函数名之间使用空格分开。
调用函数的时候要使用字符 $
,后面可以跟小括号也可以使用花括号。
2. 模式字符串替换函数 patsubst
函数使用格式如下:
$(patsubst <pattern>,<replacement>,<text>)
函数说明:函数功能是查找 text
中的单词是否符合模式 pattern
,如果匹配的话,则用 replacement
替换。返回值为替换后的新字符串。实例:
OBJ=$(patsubst %.cpp, %.o, 11.cpp 22.cpp 33.cpp)
all:
echo $(OBJ)
执行 make
命令,
wohu@ubuntu:~/cpp/ifeq$ make
echo 11.o 22.o 33.o
11.o 22.o 33.o
wohu@ubuntu:~/cpp/ifeq$
3. 字符串替换函数 subst
函数使用格式如下:
$(subst <from>,<to>,<text>)
函数说明:函数的功能是把字符串中的 form
替换成 to
,返回值为替换后的新字符串。实例:
OBJ=$(subst oo,ss, faoo fcoo )
all:
echo $(OBJ)
执行 make
命令,
wohu@ubuntu:~/cpp/func$ make
echo fass fcss
fass fcss
wohu@ubuntu:~/cpp/func$
4. 去空格函数 strip
函数使用格式如下:
$(strip <string>)
函数说明:函数的功能是去掉字符串的开头和结尾的字符串,并且将其中的多个连续的空格合并成为一个空格。返回值为去掉空格后的字符串。实例:
OBJ=$(strip a b c )
all:
echo $(OBJ)
执行完 make 命令
wohu@ubuntu:~/cpp/func$ make
echo a b c
a b c
wohu@ubuntu:~/cpp/func$
5. 查找字符串函数 findstring
函数使用格式如下:
$(findstring <find>,<in>)
函数说明:函数的功能是查找 in
中的 find
,如果我们查找的目标字符串存在。返回值为目标字符串,如果不存在就返回空。实例:
OBJ=$(findstring is, it is dog)
all:
echo $(OBJ)
执行 make
命令,
wohu@ubuntu:~/cpp/func$ make
echo is
is
wohu@ubuntu:~/cpp/func$
6. 过滤函数 filter
函数使用格式如下:
$(filter <pattern>,<text>)
函数说明:函数的功能是过滤出 text
中符合模式 pattern
的字符串,可以有多个 pattern
。返回值为过滤后的字符串。实例:
OBJ=$(filter %.cpp %.o, a.cpp b.o c.txt)
all:
echo $(OBJ)
执行 make
命令,
wohu@ubuntu:~/cpp/func$ make
echo a.cpp b.o
a.cpp b.o
wohu@ubuntu:~/cpp/func$
7. 反过滤函数 filter-out
函数使用格式如下:
$(filter-out <pattern>,<text>)
函数说明:函数的功能是功能和 filter
函数正好相反,但是用法相同。
去除符合模式 pattern
的字符串,保留符合的字符串。返回值是保留的字符串。实例:
OBJ=$(filter-out %.cpp %.o, a.cpp b.o c.txt)
all:
echo $(OBJ)
执行 make
命令,
wohu@ubuntu:~/cpp/func$ make
echo c.txt
c.txt
wohu@ubuntu:~/cpp/func$
8. 排序函数 sort
函数使用格式如下:
$(sort <list>)
函数说明:函数的功能是将 list
中的单词排序(升序)。返回值为排列后的字符串。实例:
OBJ=$(sort z, y, y, x)
all:
echo $(OBJ)
执行 make
命令,
wohu@ubuntu:~/cpp/func$ make
echo x y, z,
x y, z,
wohu@ubuntu:~/cpp/func$
sort 会去除重复的字符串。
9. 取单词函数 word
函数使用格式如下:
$(word <n>,<text>)
函数说明:函数的功能是取出函数 text
中的第 n
个单词。返回值为我们取出的第 n
个单词。实例:
OBJ=$(word 3, a.cpp, b.cpp, c.cpp)
all:
echo $(OBJ)
执行 make
命令,
wohu@ubuntu:~/cpp/func$ make
echo c.cpp
c.cpp
wohu@ubuntu:~/cpp/func$
标签:OBJ,函数,浅显易懂,make,echo,filter,ubuntu,cpp,处理函数 来源: https://blog.csdn.net/wohu1104/article/details/111024600