在 Bash 中替换字符

在 Bash 中替换字符

我尝试使用 bash 创建一个 makefile,并使用以下行

echo "OBJS = $(ls *.c | sed -r 's/.c\n/.o\s/g')" >> makefile

我希望它打印该行:

OBJS = foo.o bar.o

对于文件foo.cbar.c我的工作目录,但我得到了

OBJS = foo.c
bar.c

我不是sed专家,所以我想我做错了。有人可以帮我一下吗?

答案1

使用数组和参数扩展:

files=(*.c)
echo OBJ = "${files[@]/%.c/.o}"

相关内容