Chinaunix

标题: 脚本求助 [打印本页]

作者: gzhgyzhh    时间: 2014-09-16 11:02
标题: 脚本求助
下面是tomcat mem使用情况
我想做个监视脚本,我现在可以把把加粗、字体倾斜的字段截取出来,如下:
New Generation:used0.6161575317382812MB)
Eden Space:used0.6157684326171875MB)
Concurrent Mark-Sweep Generation:used13.883476257324219MB)
Perm Generation:used13.883476257324219MB)

现在显示的位数太长,
1. 我想把前后括号去掉,
2.(括号:后面数全部显示
3. 小数点后面取4位数,怎么实现

谢谢各位

using thread-local object allocation.                        
Mark Sweep Compact GC                                       
                                                            
Heap Configuration:                                          
   MinHeapFreeRatio = 40                                    
   MaxHeapFreeRatio = 70                                    
   MaxHeapSize      = 88080384 (84.0MB)                     
   NewSize          = 2686976 (2.5625MB)                     
   MaxNewSize       = -65536 (-0.0625MB)                     
   OldSize          = 5439488 (5.1875MB)                     
   NewRatio         = 2                                      
   SurvivorRatio    = 8                                      
   PermSize         = 21757952 (20.75MB)                     
   MaxPermSize      = 88080384 (84.0MB)                     
                                                            
Heap Usage:                                                  
New Generation (Eden + 1 Survivor Space):                    
   capacity = 2949120 (2.8125MB)                             
   used     = 323496 (0.30850982666015625MB)                 
   free     = 2625624 (2.5039901733398438MB)                 
   10.96923828125% used                                      
Eden Space:                                                  
   capacity = 2686976 (2.5625MB)                             
   used     = 323088 (0.3081207275390625MB)                
   free     = 2363888 (2.2543792724609375MB)                 
   12.024223513719512% used                                 
From Space:                                                  
   capacity = 262144 (0.25MB)                                
   used     = 408 (3.8909912109375E-4MB)                     
   free     = 261736 (0.24961090087890625MB)                 
   0.1556396484375% used                                    
To Space:                                                   
   capacity = 262144 (0.25MB)                                
   used     = 0 (0.0MB)                                      
   free     = 262144 (0.25MB)                                
   0.0% used                                                
tenured generation:                                          
   capacity = 6348800 (6.0546875MB)                          
   used     = 3538472 (3.3745498657226562MB)                
   free     = 2810328 (2.6801376342773438MB)                 
   55.73450100806452% used                                   
Perm Generation:                                             
   capacity = 21757952 (20.75MB)                             
   used     = 14557880 (13.883476257324219MB)               
   free     = 7200072 (6.866523742675781MB)                  
   66.90831931240588% used                                   
作者: qq58945591    时间: 2014-09-16 11:21
本帖最后由 qq58945591 于 2014-09-16 11:26 编辑

cat 1.txt
New Generation:used:(0.6161575317382812MB)
Eden Space:used:(0.6157684326171875MB)
Concurrent Mark-Sweep Generation:used:(13.883476257324219MB)
Perm Generation:used:(13.883476257324219MB)

sed 's/\(.*\):(\(.*\))/\1\2/g' 1.txt
New Generation:used0.6161575317382812MB
Eden Space:used0.6157684326171875MB
Concurrent Mark-Sweep Generation:used13.883476257324219MB
Perm Generation:used13.883476257324219MB



3一时做不起来,awk功底太差了。
作者: chengchow    时间: 2014-09-16 11:24
本帖最后由 chengchow 于 2014-09-16 11:39 编辑
  1. awk 'BEGIN{FS="[()]"}{split($2,a,".");print $1,a[1]"."substr(a[2],1,4)"MB"}' file
  2. New Generation:used 0.6161MB
  3. Eden Space:used 0.6157MB
  4. Concurrent Mark-Sweep Generation:used 13.8834MB
  5. Perm Generation:used 13.8834MB
  6. sed -r 's/(.*)\(([0-9]{1,}\.[0-9]{4})[0-9]+(.*)\)/\1\2\3/g' file
  7. New Generation:used0.6161MB
  8. Eden Space:used0.6157MB
  9. Concurrent Mark-Sweep Generation:used13.8834MB
  10. Perm Generation:used13.8834MB
复制代码

作者: zxy877298415    时间: 2014-09-16 13:24
本帖最后由 zxy877298415 于 2014-09-16 13:33 编辑

回复 1# gzhgyzhh
sed -r 's/(.*)\((.*\.....).*([A-Z]{2})\)/\1 \2\3/'  FILE
New Generation:used 0.6161 MB
Eden Space:used 0.6157 MB
Concurrent Mark-Sweep Generation:used 13.8834 MB
Perm Generation:used 13.8834 MB


   
作者: 李满满    时间: 2014-09-16 21:23
学生党:飘过~
[oracle@orcl ~]$ cat yhsafe.txt |tr '()' ' '|awk -F: '{split($3,a,".");print a[1]"."substr(a[2],0,4)}'
0.6161
0.6157
13.8834
13.8834
作者: gzhgyzhh    时间: 2014-09-17 08:27
回复 4# zxy877298415

您的方法非常的好,谢谢
非常感谢!!


   
作者: gzhgyzhh    时间: 2014-09-17 08:29
非常感谢大侠们解决方法,谢谢各位!!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2