堆栈,
我们的库中有许多文件从未在后续项目中使用过。我们现在正处于开发阶段,我们可以做一些良好的内务管理并仔细删除未使用的库代码。我正在尝试优化我的 grep 命令,它当前的实现速度相当慢。
grep --include=*.cpp --recursive --files-with-matches <library function name> <network path to subsequent projects>
主要原因是项目路径很庞大,大部分时间都花在浏览目录树和应用文件掩码上。在同一组项目文件上多次调用此 grep 命令。
我不想每次调用都在目录树中导航,而是想使用 grep 来引用存储在本地磁盘上的静态文件列表。
与此类似的东西:
grep --from-filelist=c:\MyProjectFileList.txt
MyProjectFileList.txt
将是:
\\server1\myproject1\main.cpp
\\server1\myproject1\func1.cpp
\\server1\myproject2\main.cpp
\\server1\myproject2\method.cpp
Grep 会将模式表达式应用于每个文件的内容。 Grep 输出将是使用特定库函数的项目文件的完全限定路径。
不返回项目文件的特定库函数的 Grep 命令是无关的,可以删除。
如何强制 grep 从存储在文本文件中的外部文件列表中扫描文件? (从而删除目录扫描。)
最佳答案
尝试使用“xargs”命令和管道(“|”)。
关于regex - grep 通过显式文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714820/