【问题标题】:How can you use awk to print a column by number inside a makefile? [duplicate]如何使用 awk 在生成文件中按编号打印列? [复制]
【发布时间】:2016-12-19 01:04:43
【问题描述】:
# 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 示例中的任何一个,您可能必须将空格缩进转回制表符。

【问题讨论】:

    标签: bash awk makefile escaping


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 2020-03-01
      • 2016-07-30
      • 1970-01-01
      • 2014-07-31
      相关资源
      最近更新 更多