免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1777 | 回复: 7
打印 上一主题 下一主题

写了一个AWK,请求高手指点指点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-03 12:36 |只看该作者 |倒序浏览
本帖最后由 q369965658 于 2012-02-03 18:35 编辑

想分析一串类似于
    Time     Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs   %Util    Sat
11:29:13 e1000g0    0.00    0.00    0.00    0.00   226.4   64.09    0.00   0.00
11:29:13     lo0    0.00    0.00    1.11    1.11    0.00    0.00    0.00   0.00
.......
这样的数据,行数不定。我做的是列排序,想要往空格的地方插入 ASCII码 ,我写的代码如下
  1. parserResult='BEGIN{
  2.      len=split(strResult,array);
  3.          for(k=1;k<=len;k++)
  4.          {
  5.              if(1 == k){
  6.                      print array[k],char(0x1e);}  //第一行与值之间用0x1e隔开,
  7.              else if(k == len){
  8.                      print array[k];}                   //最后一个值后面什么也不加
  9.              else if(k % 7 ==0){
  10.                      print array[k],char(0x1f);} //以后的每一行开始与值都加一个ox1f
  11.              else if(k % 7!=0){
  12.                      print array[k],char(0x1d);}//值与值之间用ox1d隔开
  13.          }

  14. }'
  15. awk -v strResult=$result "$parserResult"
复制代码


不知道我这样的想法对不对,大家有没有其它好的方法
还有,好像这个语法难道也不对?运行好像说awk符号错误,
请大家指点指点,公司初次用AWK分析。






那如果把输出的格式换成坚着输出的话,用AWK如何写呢,例如这样:Time  0x1e 11:29:13 0x1f  11:29:13 0x1d  Int  0x1e e1000g0  0x1f  lo0 ......
像这种格式的用AWK来做是不是不好写,还是写不出来?   
help me{:2_166:}

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2012-02-03 12:42 |只看该作者
以顶楼数据为例,你想得到的结果是什么?

论坛徽章:
0
3 [报告]
发表于 2012-02-03 13:21 |只看该作者
回复 2# Shell_HAT


    我想得到像     
Time         0x1e      Int          0x1f     rKB/s   0x1f   wKB/s   0x1f   rPk/s  0x1f  wPk/s  0x1f   rAvs    0x1f   wAvs   0x1f  %Util  0x1f  Sat   0x1d
13:17:00   0x1e     e1000g0  0x1f     0.00    0x1f    0.00     0x1f    0.00  0x1f  0.00    0x1f   232.4  0x1f   64.07  0x1f  0.00   0x1f  0.00  0x1d
13:17:00   0x1e     lo0          0x1f     0.00    0x1f    0.00     0x1f   1.42   0x1f 1.42     0x1f   0.00    0x1f   0.00    0x1f  0.00   0x1f  0.00

这样的格式。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2012-02-03 14:00 |只看该作者
说明(1楼)与结果(3楼)....不一样

论坛徽章:
1
2015亚冠之吉达阿赫利
日期:2015-09-09 16:42:38
5 [报告]
发表于 2012-02-03 14:01 |只看该作者
回复 1# q369965658

echo "Time     Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs   %Util    Sat
11:29:13 e1000g0    0.00    0.00    0.00    0.00   226.4   64.09    0.00   0.00
11:29:13     lo0    0.00    0.00    1.11    1.11    0.00    0.00    0.00   0.00
" |  awk 'BEGIN{OFS="\t0x1e"}{$1=$1;print $0}'


   

论坛徽章:
0
6 [报告]
发表于 2012-02-03 14:03 |只看该作者
awk '{$1=$1" oxle";for(i=2;i<NF;i++){$i=$i" 0x1f"};$NF=$NF" 0x1d"}1' file

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
7 [报告]
发表于 2012-02-03 14:22 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
8 [报告]
发表于 2012-02-03 15:50 |只看该作者
jiejie455 发表于 2012-02-03 14:03
awk '{$1=$1" oxle";for(i=2;i


多谢,但是你的方法我试了,好像不行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP