如何在makefile中使用awk按列号打印列?

3
# test.mk
test:
    echo a b c | awk '{print $2}'

导致以下结果:(在 Ubuntu 和 OSX 上都是如此)
$ make -f test.mk 
echo a b c | awk '{print }'
a b c

替代:

$ make -f test.mk 
echo a b c | awk '{print $2}'
b

我已经尝试了几种'和"的组合,但是无法弄清楚如何让make直接打印出$2,awk可以替换第二列。 我有两个解决方案:
# test.mk with workaround #1
test:
    test.sh

# test.sh
echo a b c | awk '{print $2}'

抱歉,我只能使用英文进行翻译。
# test.mk with workaround #2
test:
    echo a b c | cut -f2 -d" "

不过我很好奇是否有办法直接将awk放入.mk文件中。

注意:如果您要复制任何这些.mk示例,则可能需要将空格缩进转换回制表符。

1个回答

1

为什么AWK在makefile中不能正常工作? 包含答案

我最初寻找答案时没有遇到它,但在发布后我在“相关”部分看到了它。对于任何好奇的人:

# test.mk
test:
    echo a b c | awk '{print $$2}'

$ make -f test.mk 
echo a b c | awk '{print $2}'
b

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