【发布时间】:2017-03-03 06:51:10
【问题描述】:
我有一个 Makefile,它需要使用 awk 从文本文件 `someText.txt 中提取一些信息。这是一个例子:
在控制台中手动对我的文本文件执行 awk 效果很好:
$ cat someText.txt | awk '/Total number:/ {print $NF}'
$ 42
但在我的 makefile 中使用它不起作用:
MYVAR=$(shell cat someText.txt | awk '/Total number:/ {print $NF}')
all:
@echo Count: $(MYVAR)
输出为:Count:
但我建议输出是Count: 42
【问题讨论】:
-
顺便说一句,您还想避免useless use of
cat -
TL;DR 你需要将每个
$$加倍,这应该传递给 shell。 -
triple 暗指这个...
awk '/Total number:/ {print $NF}' someText.txt -
是的,就是这样。我忽略了大括号内的美元。使用
{print $$NF}效果很好。