Я пишу Makefile, в котором у меня есть функция, которая вызывается в foreach
.
В этой функции я хочу использовать команду awk
, в которой я хотел бы использовать $3
.
Однако я не знаю, как правильно сбежать $
.
Вот упрощенный код. (input.txt
имеет три столбца, а третий столбец является значением)
define MyFunction
%/filtered$(1).txt: %/input.txt
cat $$*/input.txt | awk '{ if ($$3 < $(1)) print }'
endef
$(foreach threshold,1 2 3,$(eval $(call MyFunction,$(threshold))))
Когда я выполняю приведенный выше код, я получаю ошибку
awk: syntax error at source line 1
Я пытался изменить число $
с или экранирование с обратной косой чертой \
. Это не помогло ...
Как я могу решить эту проблему?