我在Linux中遇到find命令的问题。在我的makefile中,我有一个变量,我保存所有.c代码文件(我在互联网上找到了这个)
source_files = $(shell find ../src -type f -iname '*.c' | sed 's/^\.\.\/src\///')
但我想添加额外的扩展名 - * .cu和* .cpp,而不仅仅是* .c
例如:
source_files = $(shell find ../src -type f -iname **'*.c;*.cu;*.cpp'** | sed 's/^\.\.\/src\///')
当然我的代码无效。
如何更改代码以使用其他扩展程序?
答案 0 :(得分:3)
您可以使用find
-o
中将搜索条件链接在一起
source_files = $(shell find ../src -type f -iname '*.c' -o -iname '*.cu' -o -iname '*.cpp' | sed 's/^\.\.\/src\///')
您也可以使用正则表达式搜索:
source_files = $(shell find ../src -type f -regex ".*\.\(c\|cu\|cpp\)$" | sed 's/^\.\.\/src\///')