免费注册 查看新帖 |

Chinaunix

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

如何将awk中的参数传递到系统命令中? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-01 10:25 |只看该作者 |倒序浏览
比如,我要抽取符合条件的行,然后将该行部分内容抽取出来,追加到以该行下面一行的内容命名的文件中

如: name: aaa
       class: bbb01
       name:ddd
      class:ccc01
     name:eee
     class:bbb02
    name:fff
    class:ccc02


结果生成2个文件:bbb ccc

bbb 中内容为:
                aaa
                        eee
ccc中内容为:
                ddd
                        fff


如果用awk做的话,该怎么做?请大侠指点

论坛徽章:
0
2 [报告]
发表于 2010-07-01 10:28 |只看该作者
抽取符合条件的行  条件不说怎么帮你搞?!

论坛徽章:
0
3 [报告]
发表于 2010-07-01 10:33 |只看该作者
  1. awk -F':' '{prv=$2;getline;}$2~/bbb/{print prv>"bbb"}$2~/ccc/{print prv>"ccc"}' file
复制代码

论坛徽章:
0
4 [报告]
发表于 2010-07-01 10:59 |只看该作者
回复 3# lkk2003rty


    谢谢

   如果这里bbb和ccc也是不确定的呢,即这个文件中不确定会存在多少个class呢?

论坛徽章:
0
5 [报告]
发表于 2010-07-01 11:03 |只看该作者
回复 4# chyhao


    谢谢,根据您的提示,我稍加修改,已经可以了,非常非常感谢

论坛徽章:
0
6 [报告]
发表于 2010-07-01 11:06 |只看该作者
回复 4# chyhao


    具体文件是长什么样子的 能贴出一部分不?你是指一个name对应多个class么?
   bbb和ccc不确定可以写在变量里然后匹配

论坛徽章:
0
7 [报告]
发表于 2010-07-01 11:07 |只看该作者
回复 3# lkk2003rty


    awk -F':' '/name:/{prv=$2;}/class:/{ cla=substr($2,1,3) print prv>>cla}' file

论坛徽章:
0
8 [报告]
发表于 2010-07-01 11:14 |只看该作者
awk 'BEGIN{FS=":";RS="class:[a-z]+[0-9]+"}{ind=substr(RT,7,3);array[ind]=$2"\n"array[ind]}END{for(i in array){print array[i] >> i".txt"}}'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP