You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Makefile中用正则查找最近编辑的Python文件

Makefile匹配最近修改Python文件的规则问题解决

初始尝试的规则

想要找出当前目录下60分钟内修改的Python文件,初始编写的Makefile规则如下:

recent_py:
    find . -cmin -60 | egrep '*.py$\' 

执行问题

运行make recent_py后,实际执行的命令为:

find . -cmin -60 | egrep '*.py'

问题出在Makefile会解析$符号,原正则里的$被忽略,导致正则变成*.py,会匹配到.pyc这类不符合需求的文件。

第一次修改后的错误

将规则修改为:

recent_py:
    find . -cmin -60 | grep -E '\.py$'

再次运行make recent_py时出现语法错误:

> make recent_py
find . -cmin -60 | grep -E '\.py
/bin/sh: 1: Syntax error: Unterminated quoted string
make: *** [Makefile:81: recent_py] Error 2

原因是Makefile中$属于特殊字符,直接使用会被解析,导致结尾的引号无法正常闭合,触发未终止字符串的语法错误。

正确写法

需要用$$对$进行转义,让Makefile将其传递为单个$给shell,正确规则如下:

recent_py:
    find . -cmin -60 | grep -E '\.py$$'

内容的提问来源于stack exchange,提问作者baxx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:30:55