如何在Makefile中使用awk?

3
我有一个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)

输出为:计数:

但我建议输出为计数:42


可能是如何为Makefile正确转义数据?的重复问题。 - tripleee
2
顺便提一下,您还要避免无用的cat使用 - tripleee
4
简而言之,您需要将每个应该传递到 shell 的 $$ 值加倍。 - tripleee
1
triple 是在暗示这个命令:awk '/Total number:/ {print $NF}' someText.txt - Mark Setchell
2
是的,就是这样。我忽略了花括号内的美元符号。使用 {print $$NF} 就可以很好地工作了。 - eDeviser
1个回答

5

MYVAR=$(shell cat someText.txt | awk '/总数:/ {print $$NF}')


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接