awk,cut分割字符效率测试

通过#或者@来分割字符串,可以通过awk或者cut来实现,awk可以通过正则,或者split来实现。

都能实现目标,那么他们的效率怎么样呢?我们来测试一下

[root@nagios fx]# time awk -F[#@] ‘{print $4}’ www>/dev/null

real    1m9.570s

user    1m9.202s

sys     0m0.340s

[root@nagios fx]# time awk -F# ‘{split($3,A,”@”);{print A[2]}}’ www>/dev/null

real    0m22.342s

user    0m22.123s

sys     0m0.220s

[root@nagios fx]# time cut -d# -f 3 www | cut -d@ -f2 >/dev/null

real    0m17.283s

user    0m26.298s

sys     0m0.486s

如此来看,2次cut的效率都大大高于awk

awk的内置函数效率大大高于自己正则匹配

实现同样的目标,用不同的方式得到完全不一样的效率~

时间: 2024-12-02 13:15:18

awk,cut分割字符效率测试的相关文章

mysql oracle 分割字符函数

问题描述 mysql oracle 分割字符函数 5C 8:5;71:41;1:8;2:12;3:17;4:20 这样格式的字段传一个冒号前面的值,输出冒号后面的值怎么实现 解决方案 google oracle实现split 解决方案二: select substring_index('8:5'':' -1) from table where substring_index('8:5'':' 1) = 8

ASP写入响应流的最高效率测试结果

响应|响应 本篇教程主要介绍:将ASP生成的内容写入响应流中最有效的方法,即用 Response.Write 和 <%=%> 向客户端输出内容时的效率测试. 使用ASP的一个最主要原因是在服务器上生成动态内容.所以很明显,我们测试的起点是确定将动态内容发送到响应流中的最适合的方式. 在多种选择中,有两个是最基本的:一是使用内联ASP标记,另一个是使用Response.Write 语句. 为测试这些选择,我们创建了一个简单的ASP页面,其中定义了一些变量,然后将它们的值插入表格中.虽然这个页面很

php分割字符串并输出数组字符例子

  在php中分割字符函数可以使用explode()函数,但是使用此函数必须要有一个规律了,如以|分开或以其它字符分开,这样我们就可以直接使用explode把字符串分成数组之后再利用for遍历输出,下面来看几个例子. explode() 函数把字符串分割为数组. 语法 explode(separator,string,limit) 例子一  代码如下   <?php $test='472347127,893372115,850965403'; $r=explode(",",$te

MySQL随机查询记录的效率测试分析_Mysql

以下就是文章的主要内容. 1.SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了. 但是真正测试一下才发现这样效率非常低.一个15万余条的库,查询5条数据,居然要8秒以上 查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低. You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evalu

C/C++ For循环语句的效率测试优化及运行时错误:Stack Overflow的解决办法

C/C++ For循环语句的效率测试优化及运行时错误:Stack Overflow的解决办法 在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的 循环放在最外层,以减少CPU跨切循环层的次数. 使用以下代码对嵌套For循环的效率进行测试验证: // For嵌套性能.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream>

[AWK]使用AWK进行分割字符串以及截取字符串

如何split当前的字符串,用$0,例如:  cat num.2012032911 | awk '{print $2}' | awk '{split($0,b,".");print b[2]}' | cut -c 3- 获取第二列,例如第二列是com.sb3456.you那么在split当前的这个字符串获得sb3456,最后截取sb3456字符串从第3个字符到最后的字符结果为456  b="c,d,e,f,g" echo | awk '{split("'$

大数据量分页存储过程效率测试附测试代码与结果

测试环境 硬件:CPU 酷睿双核T5750 内存:2G 软件:Windows server 2003 + sql server 2005 OK,我们首先创建一数据库:data_Test,并在此数据库中创建一表:tb_TestTable 复制代码 代码如下: create database data_Test --创建数据库 data_Test GO use data_Test GO create table tb_TestTable --创建表 (id int identity(1,1) pri

PHP类中Static方法效率测试代码

类的定义如下: 复制代码 代码如下: class test { public static function a(){} public function b(){} } $obj = new test; 比较以下几种情况 test::a(); $obj->a(); $obj->b(); 测试代码: 复制代码 代码如下: $obj = new test; $test_times = 100; $times = 10000; $effi1 = array(); $effi2 = array();

关于C#数组初始化的效率测试

数组 最近我在写数据压缩的程序,经常用到数组.每到一定时候就需要对数组全部元素进行清零.由于C#不提供memset()方法.所以进行了以下的测试. 主要程序部份: static void Main(string[] args){ int i,k; double p = 0; DateTime s, e; byte[] test = new byte[65536]; byte[] test2 = new byte[65536]; for(int i = 0; i < 10; i++) { s =