如何通过SVN命令行获取指定日期区间内特定扩展名的变更文件
获取指定日期区间内特定扩展名的SVN变更文件
嘿,这问题我熟!你现在用的命令确实会把指定日期区间里所有变更的文件都捞出来,要只留.sql后缀的,其实加个过滤步骤就行,分两种操作系统场景给你说清楚:
Linux/macOS 环境
用grep工具来做后缀过滤,直接在原有命令后面加个管道和过滤规则就行:
svn diff -r{2017-10-12}:{2017-10-28} --summarize https://svn.blah.com/../ | grep '\.sql$' > output.txt
这里grep '\.sql$'的作用是精准匹配以.sql结尾的行:\.是转义了点号(因为点号在正则里代表任意字符),$表示匹配行尾,确保只选中真正的SQL文件。
Windows 命令提示符(CMD)环境
Windows下用findstr替代grep,命令是这样的:
svn diff -r{2017-10-12}:{2017-10-28} --summarize https://svn.blah.com/../ | findstr /E ".sql" > output.txt
参数/E表示只匹配行尾的.sql,同样能精准筛选出目标文件。
额外小技巧
如果你还想进一步筛选变更状态(比如只看被修改的.sql文件,svn diff --summarize会用M标记修改、A标记新增、D标记删除),可以调整过滤规则:
- Linux/macOS:
grep '^M.*\.sql$' - Windows:
findstr /R "^M.*\.sql$"
内容的提问来源于stack exchange,提问作者M005
相关产品推荐
相关产品推荐

