shell求助

macrossplus 2017-08-30 10:24:46
目标文本如下:
Cat a.txt
Reads: Reqs Data Writes: Reqs Data Small Large
Filetype Name Data per sec per sec Data per sec per sec Read Read
--------------- ------- ------- ------- ------- ------- ------- ------- -------
Data File 152.3G 2147.2 43.2473 6.4G 198.7 1.81754 1.1 14.7
Archive Log 14.1G 8.0 4.00507 2.9G 0.8 .832357 2.5 15.8
Archive Log Bac 0M 0.0 0M 14.1G 4.0 4.00064 N/A N/A
Log File 2.9G 0.8 .832357 5.3G 120.6 1.50856 0.8 6.6
Control File 2.2G 34.6 .627943 160M 2.8 .044377 0.1 2.7
Other 0M 0.0 0M 2G 18.6 .579682 0.3 N/A
Data File Backu 16M 0.0 .004437 0M 0.0 0M N/A 392.8
Temp File 0M 0.0 0M 0M 0.0 0M 0.3 N/A
TOTAL: 171.5G 2190.7 48.7171 30.9G 345.5 8.78316 1.1 14.8


Reads: Reqs Data Writes: Reqs Data Small Large
Filetype Name Data per sec per sec Data per sec per sec Read Read
--------------- ------- ------- ------- ------- ------- ------- ------- -------
Data File 38.6G 1395.2 10.9835 467M 13.3 .129646 0.4 12.3
Data File Backu 14.8G 4.2 4.19864 114M 0.0 .031648 2.0 387.5
Data File Copy 1M 0.0 .000277 14.7G 168.8 4.18032 14.6 N/A
Archive Log 6.7G 1.9 1.90527 856M 0.2 .237638 1.8 10.9
Control File 6.7G 48.8 1.90776 399M 5.1 .110768 0.1 3.2
Archive Log Bac 0M 0.0 0M 6.7G 1.9 1.90527 N/A N/A
Log File 856M 0.2 .237638 479M 33.0 .132977 0.6 6.3
Other 2M 0.1 .000555 338M 3.0 .093833 4.6 N/A
Temp File 0M 0.0 0M 0M 0.0 0M N/A N/A
TOTAL: 67.7G 1450.4 19.2337 24G 225.5 6.82210 0.4 215.1
-------------------------------------------------------------


我要提取col1,col2,col4,col5,col6 就是结果类似下面结果:
Filetype Name,Reads: Data,Data per sec,Writes: Data,Data per sec
Data File,166.7G,94.6853,12G,6.83861
Log File,9.5G,5.3961,18.6G,10.5786
Archive Log,8.7G,4.92617,9.5G,5.3961
Control File,1.6G,0.913776,154M,0.085441
Temp File,0M,0M,778M,0.431644
TOTAL:,186.4G,105.921,41.1G,23.3304

提取filetype name可以用awk '{sub(/[0-9].*/,"");print}' a.txt ,但从第一个数字到最后提取出来不知道咋弄

awk/sed/perl都可以,如果可以最好awk/sed/shell
...全文
128 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
macrossplus 2017-08-30
  • 打赏
  • 举报
回复
笨办法搞定了 cat awrrpt_20170723150016_20170723160023_1.txt | awk '{match($0,/[0-9]+/);print substr($0,RSTART)}'

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧