您的位置:首页 > 运维架构 > Linux

Linux统计行数方法及效率测试

2013-10-28 17:13 337 查看
转自:http://www.linuxidc.com/Linux/2012-06/63680.htm

说明:蓝色=命令名称

浅绿=命令参数

浅蓝=选项

紫色=目录

系统环境:CentOS 6.2 i686

一、行数统计方法

1、系统命令:wc -l
filename



2、grep方法:grep -c"" filename



3、sed方法:sed -n '$='
filename



4、awk方法:awk 'END{print NR}'filename



二、效率测试

生成测试所需文件:awk 'BEGIN{for(i=0;i<10000000;i++)print i}'>>test



说明:用上文中介绍的方法分别对test文件进行三测测试统并统计时间,最后取平均值进行比较

1、wc方法: time wc -l test



用时:0.234s 0.242s 0.237s

平均:0.237667s

2、grep方法:time grep -c"" test



用时:1.503s 1.340s 1.414s

平均:1.419000s

3、sed方法:time sed -n '$=' test



用时:2.268s 2.258s 2.344s

平均:2.290000s

4、awk方法:time awk 'END{print NR}' test



用时:1.637s 1.638s 1.649s

平均:1.641330s

总结



wc的效率远高于其他方法,具体效率:wc>grep>awk>sed

补充:wc用法



语法:wc [选项] 文件

说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。

该命令各选项含义如下:

  - c 统计字节数。

  - l 统计行数。

  - w 统计字数。

这些选项可以组合使用

分界线

=============================================================================================================================

#命令A
grep -c "aaa.*bbb" test.csv


#命令B
grep aaa test.csv | grep bbb| wc -l


亲测,如果test.csv 文件很大,命令A速度远快于命令B !
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: