免费注册 查看新帖 |

Chinaunix

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

awk如何指定字段的范围 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-27 08:38 |只看该作者 |倒序浏览
我想统计出top -b -n 1 -c 这样的输出,最后COMMAND列是所运行的命令,每行不定有多个空格,我想问的是awk可以指定一个字段范围吗?

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
2 [报告]
发表于 2011-08-27 08:41 |只看该作者
回复 1# fangtong2008


    你想得到什么信息

论坛徽章:
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
3 [报告]
发表于 2011-08-27 09:08 |只看该作者
可以。
根据字符长度或者列,都行。

论坛徽章:
1
巳蛇
日期:2013-10-28 15:55:33
4 [报告]
发表于 2011-08-27 09:22 |只看该作者
就是最后一列会出现域分割符.

awk 把前N 个域分隔符替换成其他字符, 如 \x1a ....

然后对新文件处理, 我的bash版文件管理器就是这么做的.

论坛徽章:
1
巳蛇
日期:2013-10-28 15:55:33
5 [报告]
发表于 2011-08-27 09:23 |只看该作者
为了处理ls的输出

论坛徽章:
0
6 [报告]
发表于 2011-08-27 11:12 |只看该作者
好像不支持吧,等待高手出招

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

论坛徽章:
0
8 [报告]
发表于 2011-08-28 14:43 |只看该作者
回复 7# zooyo


    PID  USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                         
30689  daemon    18   0 1235m  24m 1764 S  3.9  0.2   0:43.94 /usr/local/apache2/bin/httpd -k restart                                                               
12361   imkftfl   18   0 4997m 322m  10m S  2.0  2.0  11:21.65 jsvc.exec -user tomcat -home /usr/java/jdk1.6 -Dcatalina.home=/user/lcoal/tomcat7  -Dcatalina.ba
    1 root      15   0 10348  684  576 S  0.0  0.0   0:30.81 init [3]                                                                                       
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.95 [migration/0]                                                                                   
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 [ksoftirqd/0]                                                                                   
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 [watchdog/0]           


信息如上,COMMAND是最后一列,但是该列下却不像前面的那么规,如第二行最后的字段是/usr/local/apache2/bin/httpd    -k    restart  ,有空格就出来了字段,下行的字段就更多了,可也有的是一个字段的,我想问的就是,awk中指定字段范围,如COMMAND是$12,那我想指定$12-$NF这样就可以了,不知道AWK支持不支持。

论坛徽章:
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
9 [报告]
发表于 2011-08-28 15:02 |只看该作者
回复  zooyo


    PID  USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            ...
fangtong2008 发表于 2011-08-28 14:43



awk 'NF>=12{for(n=12;n<=NF;n++)printf $n" ";print ""}'

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
10 [报告]
发表于 2011-08-29 08:41 |只看该作者
  1. sed 's/ \+/ /g;s/^ //' |cut -d' ' -f12-
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP