Оболочка Makefile игнорирует sed regexp конец строки

Обойти запутанность арифметики плавающей точки оболочки, почему бы не использовать Perl? Вот острота, чтобы сделать это:

C=3 perl -ne 'printf "%.2f\n",$_/$ENV{C}' your_file

Гигантский ответ на этот вопрос может также быть интересен Вам.

3
02.11.2015, 01:11
2 ответа

С помощью GNU Make:

objects := $(patsubst %.c,%.o,$(wildcard *.c))

all : $(objects)

Смотрите info make или pinfo make и ищите функции wildcard и patsubst для более подробной информации. В зависимости от вашего дистрибутива, вам может понадобиться сначала установить пакет make-doc (или аналогичный), чтобы получить полную make документацию.

3
27.01.2020, 21:10

Вам нужно убрать $. В make это делается с помощью $$. Ваша строка должна выглядеть так:

TARGETS = $(shell ls *.c | sed "s/\.c$$//g")

Хотя эта строка отвечает на вопросы напрямую, решение @cas кажется лучше.

6
27.01.2020, 21:10

Теги

Похожие вопросы