zoukankan      html  css  js  c++  java
  • Linux琐碎记录之统计源码的行数

    Linux下wc命令是统计代码行数的,其用法如下:

    用法:wc [选项]... [文件]...
     或:wc [选项]... --files0-from=F
    输出每个指定文件的行数、单词计数和字节数,如果指定了
    多于一个文件,继续给出所有相关数据的总计。如果没有指定
    文件,或者文件为"-",则从标准输入读取数据。
    -c, --bytes 输出字节数统计
    -m, --chars 输出字符数统计
    -l, --lines 输出行数统计
    --files0-from=文件 从指定文件读取以NUL 终止的名称,如果该文件被
    指定为"-"则从标准输入读文件名
    -L, --max-line-length 显示最长行的长度
    -w, --words 显示单词计数
    --help 显示此帮助信息并退出
    --version 显示版本信息并退出

    wc -l *.c *.h 就可以知道当前目录下的所有c 和 h 文件的行数的详细信息。很不错

    如果要递归,可以配合其他命令一起使用

    当前目录及子目录:
    find . -name *.c |xargs wc -l
    find . -name *.cpp | xargs wc -l
    find . -name *.h |xargs wc -l

    想一下子 ,或许简单的可以 使用重定向技术 使用

     find -name "*.c">/tmp/file.list ;find -name "*.h" >>/tmp/file.list;cat /tmp/file.list |xargs wc -l;rm /tmp/file.list

    或者这个比较方便:

    wc -l `find ./ -name "*.c";find -name "*.h"`|tail -n1 

    2.统计文件数量

    find . -name *.c |wc -l

    3.统计代码行数(过滤空行)

    find . -name *.c|xargs cat|grep -v ^$|wc -l

    $ find --help
    用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

    默认路径为当前目录;默认表达式为 -print
    表达式可能由下列成份组成:操作符、选项、测试表达式以及动作:

    操作符 (优先级递减;未做任何指定时默认使用 -and):
    ( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2
    EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2

    位置选项 (总是真): -daystart -follow -regextype

    普通选项 (总是真,在其它表达式前指定):
    -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
    --version -xdev -ignore_readdir_race -noignore_readdir_race

    测试(N可以是 +N 或-N 或 N):-amin N -anewer FILE -atime N -cmin
    -cnewer 文件 -ctime N -empty -false -fstype 类型 -gid N -group 名称
    -ilname 匹配模式 -iname 匹配模式 -inum N -ipath 匹配模式 -iregex 匹配模式
    -links N -lname 匹配模式 -mmin N -mtime N -name 匹配模式 -newer 文件
    -nouser -nogroup -path 匹配模式 -perm [+-]访问模式 -regex 匹配模式
    -readable -writable -executable
    -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
    -used N -user NAME -xtype [bcdpfls]

    动作: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print
    -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
    -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
    -execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;

    通过 findutils 错误报告页 http://savannah.gnu.org/ 报告错误及跟踪修定过程。如果您无法浏览网页,请发电子邮件至 <bug-findutils@gnu.org>。



    转载请注明出处:http://www.cnblogs.com/ayanmw 多谢

    ------------------------------------------------------------------------------------------------

    一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。

  • 相关阅读:
    ZOJ 3332 Strange Country II
    ZOJ 3331 Process the Tasks(双塔DP)
    ZOJ 3326 An Awful Problem(模拟)
    HDU 1796 How many integers can you find(容斥原理)
    HDU 4059 The Boss on Mars(容斥原理)
    HDU 4135 Co-prime(容斥原理)
    HDU 5677 ztr loves substring(回文串加多重背包)
    CodeForces 668B Little Artem and Dance
    CodeForces 667A Pouring Rain
    Java实现 LeetCode 764 最大加号标志(暴力递推)
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2376162.html
Copyright © 2011-2022 走看看