Я пытаюсь создать make-файл, используя bash, и я использую следующую строку

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 ответ1

2

Используйте расширение массива и параметров:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .