patsubst 什么意思
时间: 2023-09-02 11:06:22 浏览: 84
patsubst函数是一个Makefile内置的字符串操作函数,用于将指定字符串中的模式匹配部分替换成指定字符串。
具体语法为:
```
$(patsubst pattern,replacement,text)
```
其中,pattern为要匹配的模式,replacement为要替换成的字符串,text为要进行替换操作的字符串。在替换过程中,模式中的 % 表示任意长度的任意字符,可以使用多个 % 进行模式匹配,而替换的结果中,% 会被替换为匹配上的字符串。举个例子:
```
$(patsubst %.c, %.o, main.c test.c)
```
这段命令会将 main.c 和 test.c 中以 .c 结尾的文件名替换成以 .o 结尾的文件名,即得到 main.o 和 test.o。
相关问题
shell中patsubst什么意思
在shell编程中,`patsubst`是一个强大的文本处理工具,它属于`sed`命令的一部分,但在某些shell(比如Bash)中也可独立使用。它的全称是"pattern substitution",主要用于替换字符串中符合特定模式的部分。`patsubst`的基本语法是:
```bash
patsubst pattern old-string new-string [file ...]
```
这里的参数含义如下:
- `pattern`: 指定要匹配的正则表达式模式。
- `old-string`: 要搜索的原始字符串。
- `new-string`: 替换后的字符串,可以包含特殊字符 `$&`(匹配整个旧字符串)、`\$1`, `\$2` 等(引用模式匹配到的第一、第二个组等)。
- `[file ...]`: 可选的文件列表,如果指定,则会对每个文件中的每一行应用这个替换规则。
例如,如果你想把所有的".txt"文件中的所有"example"替换为"test",你可以这样做:
```bash
patsubst '%\.txt' 'example' 'test' *.txt
```
这会在当前目录下找到所有.txt文件,并将其中的"example"替换为"test"。
patsubst
`patsubst`是GNU Make中的一个函数,用于将一组文件名中的模式进行替换。其语法如下:
```makefile
$(patsubst pattern,replacement,text)
```
其中,`pattern`是要匹配的模式,可以包含通配符`%`;`replacement`是替换后的模式,可以使用`%`表示匹配到的内容;`text`是要进行替换的文本。
`patsubst`函数返回替换后的文本。如果`text`中包含多个文件名,`patsubst`函数将对每个文件名进行模式匹配和替换,返回替换后的文件名列表,以空格分隔。
例如,可以使用以下语句将当前目录下所有的.c文件替换为对应的.o文件:
```makefile
$(patsubst %.c,%.o,$(wildcard *.c))
```
对于每个以`.c`为后缀的文件名,`patsubst`函数将其替换为以`.o`为后缀的文件名,并返回替换后的文件名列表,以空格分隔。
阅读全文