免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 928 | 回复: 2

[文本处理] 卷组信息处理 [复制链接]

论坛徽章:
0
发表于 2017-04-18 00:52 |显示全部楼层
求助大神是否有简洁的方法

原文件
VOLUME GROUP:       ldapvg                   VG IDENTIFIER:  00c6616f00004c00000001057eef41cd
VG STATE:           active                   PP SIZE:        256 megabyte(s)
VG PERMISSION:      read/write               TOTAL PPs:      3119 (798464 megabytes)
MAX LVs:            256                      FREE PPs:       11 (2816 megabytes)
LVs:                37                       USED PPs:       3108 (795648 megabytes)
OPEN LVs:           20                       QUORUM:         11 (Enabled)
TOTAL PVs:          21                       VG DESCRIPTORS: 21
STALE PVs:          0                        STALE PPs:      0
ACTIVE PVs:         21                       AUTO ON:        no
MAX PPs per VG:     32512                                    
MAX PPs per PV:     1016                     MAX PVs:        32
LTG size:           128 kilobyte(s)          AUTO SYNC:      no
HOT SPARE:          no                       BB POLICY:      relocatable


VOLUME GROUP:   spdbvg                   VG IDENTIFIER:  005da87f00004c00000000fb0b22b6e9
VG STATE:       active                   PP SIZE:        512 megabyte(s)
VG PERMISSION:  read/write               TOTAL PPs:      407 (208384 megabytes)
MAX LVs:        256                      FREE PPs:       49 (25088 megabytes)
LVs:            49                       USED PPs:       358 (183296 megabytes)
OPEN LVs:       46                       QUORUM:         2
TOTAL PVs:      1                        VG DESCRIPTORS: 2
STALE PVs:      0                        STALE PPs:      0
ACTIVE PVs:     1                        AUTO ON:        no
MAX PPs per PV: 1016                     MAX PVs:        32
LTG size:       128 kilobyte(s)          AUTO SYNC:      no
HOT SPARE:      no   
.....(也许会有第三个VOLUME GROUP的块显示)
                                    
目标文件:
VOLUME GROUP  VG STATE  VG PERMISSION  MAX LVs  LVs  OPEN LVs   TOTAL PVs  STALE PVs  ACTIVE PVs  MAX PPs per VG   MAX PPs per PV  LTG size   HOT SPARE  VG IDENTIFIER   PP SIZE  TOTAL PPs  FREE PPs   USED PPs  QUORUM  VG DESCRIPTORS  STALE PPs  AUTO ON MAX PVs AUTO SYNC

也就是希望第一个区域(第1个:前的文字)和第三个区域(第2个:前的文字)在第一行,第二个区域(第1个:后的文字)和第四个区域(第2个:后的文字)对应在第二行

论坛徽章:
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
发表于 2017-04-18 05:44 |显示全部楼层
回复 1# clockbj

for your reference

$ awk -f vg_info.awk vg.txt | column -t        
VOLUME-GROUP:  VG-IDENTIFIER:                    VG-STATE:  PP-SIZE:         VG-PERMISSION:  TOTAL-PPs:               MAX-LVs:  FREE-PPs:             LVs:  USED-PPs:                OPEN-LVs:  QUORUM:       TOTAL-PVs:  VG-DESCRIPTORS:  STALE-PVs:  STALE-PPs:  ACTIVE-PVs:  AUTO-ON:  MAX-PPs-per-VG:  MAX-PPs-per-PV:  MAX-PVs:         LTG-size:        AUTO-SYNC:  HOT-SPARE:  BB-POLICY:
ldapvg         00c6616f00004c00000001057eef41cd  active     256-megabyte(s)  read/write      3119-(798464-megabytes)  256       11-(2816-megabytes)   37    3108-(795648-megabytes)  20         11-(Enabled)  21          21               0           0           21           no        32512            1016             32               128-kilobyte(s)  no          no          relocatable
spdbvg         005da87f00004c00000000fb0b22b6e9  active     512-megabyte(s)  read/write      407-(208384-megabytes)   256       49-(25088-megabytes)  49    358-(183296-megabytes)   46         2             1           2                0           0           1            no        1016             32               128-kilobyte(s)  no               no



$ cat vg_info.awk
function ind(s){
  return(index($0,s))
}

function trim(s){
  gsub("^[ \t]+|[ \t]+$","",s);
  gsub(" +","-",s);
  #sub(":$","",s)
  return(s)
}
function g(s,e,str){
  if(e=="")
    return(trim(substr(str,s)))
  return(trim(substr(str,s,e-s-1)))
}

/VOLUME GROUP/{
  if(++H==2) print h
  if(H>1)print d
  p[1]=1;
  p[2]=ind($3);
  p[3]=ind($4);
  p[4]=ind($6);
  h=d=""
}
{
  s=$0;
  for(n=1;n<=4;++n){
    $n=g(p[n],p[n+1],s);
  }
  NF=4
  #print;
  h=h $1" "$3" "
  d=d $2" "$4" "
}
END{
  print d
}

论坛徽章:
0
发表于 2017-04-18 13:02 |显示全部楼层
非常感谢大神,回复神速
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP