如何用Cloc仅统计包含指定文本的文件?
实现cloc仅统计包含特定短语的文件
要实现这个需求,cloc本身没有直接的“仅包含内容”参数,但可以通过以下两种方法达成目标:
方法一:用--exclude-content反向排除
通过排除完全不包含目标短语的文件,剩下的就是需要统计的文件。修正你之前的正则写法,正确命令如下:cloc . --exclude-content='(?s)^((?!import).)*$'解释:
(?s)是Perl正则的单行模式修饰符,让.可以匹配换行符(确保能检查整个文件内容);^((?!import).)*$表示整个文件内容中不存在“import”字符串,cloc会排除这类文件,最终只统计包含目标短语的文件。
方法二:先用grep筛选文件再传给cloc
如果对正则不太熟悉,这种方法更直观:先用grep递归找出所有包含目标短语的文件,再将文件列表传给cloc统计,命令如下:cloc $(grep -rl "import" .)解释:
grep -rl会递归搜索当前目录,输出所有包含“import”字符串的文件路径;$()将grep的输出作为参数传给cloc,让cloc只统计这些筛选后的文件。
内容的提问来源于stack exchange,提问作者Richard Witherspoon
相关产品推荐
相关产品推荐

