Jus*_*tin 15 python bash lines-of-code
在python或bash脚本中是否存在快速而肮脏的方式,它可以递归地下降目录并计算代码行的总数?我们希望能够排除某些目录.
例如:
start at: /apps/projects/reallycoolapp
exclude: lib/, frameworks/
Run Code Online (Sandbox Code Playgroud)
排除的目录也应该是递归的.例如:
/app/projects/reallycool/lib SHOULD BE EXCLUDED
/app/projects/reallycool/modules/apple/frameworks SHOULD ALSO BE EXCLUDED
Run Code Online (Sandbox Code Playgroud)
这将是一个非常有用的实用程序.
Jus*_*tin 37
找到了一个很棒的实用程序CLOC.https://github.com/AlDanial/cloc
这是我们运行的命令:
perl cloc.pl /apps/projects/reallycoolapp --exclude-dir=lib,frameworks
Run Code Online (Sandbox Code Playgroud)
这是输出
--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
PHP 32 962 1352 2609
Javascript 5 176 225 920
Bourne Again Shell 4 45 70 182
Bourne Shell 12 52 113 178
HTML 1 0 0 25
--------------------------------------------------------------------------------
SUM: 54 1235 1760 3914
--------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
Lyn*_*nch 13
只有find和wc论证可以解决你的问题.
随着find您可以指定这样的非常复杂的逻辑:
find /apps/projects/reallycoolapp -type f -iname '*.py' ! -path '*/lib/*' ! -path '*/frameworks/*' | xargs wc -l
Run Code Online (Sandbox Code Playgroud)
这里!反转条件,因此该命令将计算不在'lib /'或'frameworks /'目录中的每个python文件的行.
只是不要忘记'*'或它不会匹配任何东西.
find ./apps/projects/reallycool -type f | \
grep -v -e /app/projects/reallycool/lib \
-e /app/projects/reallycool/modules/apple/frameworks | \
xargs wc -l | \
cut -d '.' -f 1 | \
awk 'BEGIN{total=0} {total += $1} END{print total}'
Run Code Online (Sandbox Code Playgroud)
一些注意事项...
cut命令如何将计数与文件名分开grep -e .html$ -e .css$| 归档时间: |
|
| 查看次数: |
10599 次 |
| 最近记录: |