使工作在Makefile中找到Pipe awk命令

用户名

我有这个发现awk行来获取python代码分析::

$ find ./ -name '*.py' -exec  wc -l {} \; | sort -n| awk '{print $0}{s+=$0}END{print s}'
12 ./gb/__init__.py
23 ./gb/value_type.py
40 ./setup.py
120 ./gb/libcsv.py
200
$

我尝试将其放在Makefile中::

$ cat Makefile
python_count_lines: clean
    @find ./ -name '*.py' -exec  wc -l {} \; | sort -n| awk '{print \$0}{s+=\$0}END{print s}'

但这不起作用::

$ make python_count_lines
awk: line 1: syntax error at or near }
Makefile:12: recipe for target 'python_count_lines' failed
make: *** [python_count_lines] Error 2
$
疯狂的科学家

贝特朗·马特尔(Bertrand Martel)是正确的,您需要通过将美元符号加倍而不是在其前面加反斜杠来避免美元符号的产生(请参阅此处的信息)。

但是,该建议的其余部分是不正确的,将不起作用。首先,几乎不要shell在配方中使用该功能。其次,info无法在此处使用该函数,因为在第一行中,您已将shell变量设置为RES等于某个值,然后尝试在第二行中输出make变量RES不仅如此,而且每一行都在单独的外壳程序中运行,并且在将配方的任何部分传递到外壳程序之前,所有make变量和函数引用都在前面进行了扩展。

您只需要这样做:

python_count_lines: clean
        @find ./ -name '*.py' -exec  wc -l {} \; | sort -n| awk '{print $$0}{s+=$$0}END{print s}'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

这个 awk 命令是如何工作的?

来自分类Dev

使用awk命令查找并替换Pipe

来自分类Dev

这个awk命令如何跨多行工作?

来自分类Dev

在PATH中找到正在运行的命令?

来自分类Dev

如何从 Git 命令中找到 Git 哈希?

来自分类Dev

无法从命令中找到角色

来自分类Dev

从第11个字开始,直到在bash中使用awk命令找到字符“-”

来自分类Dev

为什么IGNORECASE awk的变量不能正常工作时,它的价值在命令行选项设置?

来自分类Dev

无法在函数中执行awk命令,但直接在shell中工作

来自分类Dev

awk命令中“ a”的含义?

来自分类Dev

AWK中的Linux命令

来自分类Dev

如果使用AWK命令

来自分类Dev

Linux awk命令隔离

来自分类Dev

AWK命令-列计算

来自分类Dev

使用awk的命令主机

来自分类Dev

AWK命令到Powershell

来自分类Dev

Python AWK命令

来自分类Dev

for循环内的awk命令

来自分类Dev

awk命令结合if和for

来自分类Dev

awk 命令中的 for 循环

来自分类Dev

awk 命令中的 if 语句

来自分类Dev

在Rails中找到ActiveRecord命令不起作用

来自分类Dev

如何在* nix中找到指向命令`.`的帮助?

来自分类Dev

如何从命令行中找到Bluez版本?

来自分类Dev

如何在bash中找到模糊匹配的命令

来自分类Dev

Unix grep命令试图在故事中找到特定的单词

来自分类Dev

如何从 ifconfig 命令中找到特定的接口名称和状态?

来自分类Dev

在模块中找到命令,但无法加载模块

来自分类Dev

为什么在protoc编译器中的makefile中找到工作,但在glob ** / *。proto中找不到工作