如何解决在git仓库中找到5个最大的按行数文件
我的目标: 我想开始一个新的OpenSource项目。 通过链接进行的项目:https://github.com/dry-python/returns/tree/master/returns 首先,我需要了解必须使用哪些文件?
任务: 任务是按代码行数对文件进行排序,找到行数最多的5个文件。 我可以在控制台中使用什么命令?
我已经完成的工作:
- 将存储库文件上传到我的本地计算机上的目录称为“ returns-master”
- 运行命令:
ls / returns-master | wc -l | sort -n | head -n 5
作为回应,我得到一个错误:
ls: returns-master: No such file or directory
17
解决方法
首先检查git repo。然后在磁盘上找到所需的文件:
find /path/to/your/copy/of/repo -type f | xargs wc -l | sort -gr | head -n6 | tail -n +2 | perl -lane 'print $F[-1]'
在这里,find
将检出的git repo中的文件列表传递到xargs
,后者将它们馈送到wc -l
,后者对行进行计数。sort -gr
:按第一列(行数)反向排序。head -n6 | tail -n +2
:抓住wc
返回的前6个条目,其中包括第一个带有total
的条目,我们使用tail
将其删除。 perl -lane 'print $F[-1]'
:打印由空格(文件名)分隔的最后一列。
您需要一个支持**
glob的shell。我认为zsh
会默认执行,在bash
中您需要shopt -s globstar
。您也可以尝试用sort
代替gsort
。
wc -l **/*(.)| gsort -n
您可以添加 | gtail -n 6
仅获得前五名。
仅获取.zsh
个文件:
wc -l **/*.zsh | gsort -n
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。