![在 Bash 中替换字符](https://linux22.com/image/1530646/%E5%9C%A8%20Bash%20%E4%B8%AD%E6%9B%BF%E6%8D%A2%E5%AD%97%E7%AC%A6.png)
我尝试使用 bash 创建一个 makefile,并使用以下行
echo "OBJS = $(ls *.c | sed -r 's/.c\n/.o\s/g')" >> makefile
我希望它打印该行:
OBJS = foo.o bar.o
对于文件foo.c
和bar.c
我的工作目录,但我得到了
OBJS = foo.c
bar.c
我不是sed
专家,所以我想我做错了。有人可以帮我一下吗?
答案1
使用数组和参数扩展:
files=(*.c)
echo OBJ = "${files[@]/%.c/.o}"