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

时间:2016-08-12 05:48:11

标签: bash awk makefile escaping

# 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 个答案:

答案 0 :(得分:0)

Why does AWK not work correctly in a makefile?包含答案

我最初在寻找答案时并没有遇到过这个问题,但是在发布之后我在“相关”部分发现了它。对于任何好奇的人:

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

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