如何在Makefile中使用awk中的$1、$n

如何在Makefile中使用awk中的$1、$n,awk,makefile,Awk,Makefile,我可以通过相对路径和正确的行数填充来获得python文件的行数: $ find ./ -name "*.py" -exec wc -l {} \;| awk '{printf "%10s %s\n", $1, $2}' 29 ./setup.py 28 ./proj_one/setup.py 896 ./proj_one/proj_one/data_ns.py 169 ./proj_one/proj_one/lib.py 310 ./proj_one/proj_one/base.py 0

我可以通过相对路径和正确的行数填充来获得python文件的行数:

$ find ./ -name "*.py" -exec wc -l {} \;| awk '{printf "%10s %s\n", $1, $2}'
 29 ./setup.py
 28 ./proj_one/setup.py
896 ./proj_one/proj_one/data_ns.py
169 ./proj_one/proj_one/lib.py
310 ./proj_one/proj_one/base.py
  0 ./proj_one/proj_one/__init__.py
 72 ./proj_one/tests/lib_test.py
我希望将其保存在生成文件中::

 $ cat Makefile
 pfile_wc:
            @find ./ -name "*.py" -exec wc -l {} \;| awk '{printf "%10s %s\n", $1, $2}'
所以我可以称之为:

$ make pfile_wc

我无法正确地转义/使用Makefile中的
$1
$2
,您必须在$symbol前面加上另一个符号:

@find ./ -name "*.py" -exec wc -l {} \;| awk '{printf "%10s %s\n", $$1, $$2}'

您必须在$符号前面加上另一个符号:

@find ./ -name "*.py" -exec wc -l {} \;| awk '{printf "%10s %s\n", $$1, $$2}'

可以单独用awk完成<代码>查找-name“*.txt”-exec awk'END{printf”%10s%s\n,NR,FILENAME}{}\可以单独使用awk完成<代码>查找-name“*.txt”-exec awk'END{printf”%10s%s\n,NR,FILENAME}{}\