免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: yqhzh
打印 上一主题 下一主题

请教SHELL处理多个文件的高效方法(我把整篇文章粘贴为"附件1.txt"了) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-04-18 11:18 |只看该作者
我猜lz的意思是:
有一行数据,由<>分隔后,每个域的形式是 key=value
lz需要提取指定的key对应的value值,以<>分隔,重新组成一个文件

第一个文件就是一个virus_id一个文件,只有一条记录
第二个文件是一个virus_id对应多条记录,每个记录的key名最后一个i Num_Of_Sections 决定

解决方案,期待大牛,俺先帮忙整理下思路。。

论坛徽章:
0
12 [报告]
发表于 2012-04-18 14:05 |只看该作者
回复 9# yqhzh


    根据你说的情况。位置都是固定的。
    变化的只有section number
    而且 section信息结束后,后面这些字段是肯定出现的
    ep32=、fent=、Num_Of_Vendors=、vendor_1、virus_name_1=、virus_type_1=、virus_report_1=
    所以可以判断 那个 9+3*i 是否是section的信息,还是ep32的信息。

    还有一个方法,
    你所要得到的信息就是 Num_Of_Sections=10<>  。。。。<>ep32=  中间这段的信息。
    我觉得
  1. awk -F 'Num_Of_Sections=' '{ print $2 }' | awk -F '<>ep32' '{print $1}' | sed 's/[0-9]*<>/''/'
复制代码
就可以了
     

论坛徽章:
0
13 [报告]
发表于 2012-04-18 14:24 |只看该作者
xiongweixie 发表于 2012-04-18 14:05
回复 9# yqhzh


因为我第一次写的文章太长了,根本没有人看,所以我把这个例子最简化了。

你可以看看下面的附件1,里面有三行数据,如果按照这种方式的话,是在某些行找不到一些值的(比如说ep32。。。)。

论坛徽章:
0
14 [报告]
发表于 2012-04-18 16:03 |只看该作者
回复 13# yqhzh


    11楼的可以解决你的问题!

论坛徽章:
0
15 [报告]
发表于 2012-04-18 21:42 |只看该作者
xiongweixie 发表于 2012-04-18 16:03
回复 13# yqhzh


谢谢,我正在用yinyuemi的方式,因为数据比较复杂,还有很多异常需要调试。
现在我先做完了,到时候再结贴,看看还有没有其他方法。

论坛徽章:
0
16 [报告]
发表于 2012-04-24 09:37 |只看该作者
请问怎么结贴给分呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP