免费注册 查看新帖 |

Chinaunix

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

求教:怎样截取我所需的文本信息(包括16进制数据) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-06 10:21 |只看该作者 |倒序浏览
我现生成了一个log file,包含如下信息:
.......
Received data PID
Data : h'12
Data : h'01
........
Data : h'01
Data : h'F0
........
Received data PID
Data : h'00
Data : h'00
........

Received data PID
Data : h'12
Data : h'01
........
Data : h'01
Data : h'F0
........
我现在需要将重复部分的数据提取出来另存文档,就是
Data : h'12
Data : h'01
........
Data : h'01
这部分内容,但不包括
Data : h'F0这一行,请问可以用c shell来实现吗?
我用sed `/Data : h'12/,/Data : h'01/p' 运行报错了,我刚看c shell,还不太懂,有哪位知道,请帮帮我,谢谢!

[ 本帖最后由 lucyhe122 于 2007-2-6 11:34 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-02-06 11:33 |只看该作者

再问此问题

是不是c shell根本做不了这件事,我又试了一些命令,还是不行,那别的工具行吗?我有很多这样的数据需处理,有谁能帮帮我吗?不胜感激!

论坛徽章:
0
3 [报告]
发表于 2007-02-06 13:52 |只看该作者
sort -u urfile | sed -e '/[A-Z][0-9]$/d' -e '/[A-Z]$/d' 〉newfile
一个笨办法。

论坛徽章:
0
4 [报告]
发表于 2007-02-06 14:09 |只看该作者
grep "Data" text|sort -u|grep -v "h'F0"
肯定有更加简单的办法。。不过这个应该够用

论坛徽章:
0
5 [报告]
发表于 2007-02-06 14:27 |只看该作者
谢谢suandewo,可sort -u 是删除复制行,而我要得就是相同行,不是要删掉。我运行了这个命令,有报错,你还有别的办法吗?说的简单点就是提取从Data : h'12到Data : h'01,长度固定为18。

论坛徽章:
0
6 [报告]
发表于 2007-02-06 14:38 |只看该作者
谢谢cxfcxf,你给的可运行出结果,但不是我想要的,这样吧,我把重复数据全写下来:
.......
Received data PID
Data : h'12
Data : h'01
Data : h'00
Data : h'02
Data : h'00
Data : h'00
Data : h'00
Data : h'40
Data : h'D8
Data : h'0D
Data : h'00
Data : h'E0
Data : h'00
Data : h'00
Data : h'01
Data : h'02
Data : h'03
Data : h'01
Data : h'F0
........
Data : h'27
........
Received data PID
Data : h'00
Data : h'00
........

Received data PID
Data : h'12
Data : h'01
Data : h'00
Data : h'02
Data : h'00
Data : h'00
Data : h'00
Data : h'40
Data : h'D8
Data : h'0D
Data : h'00
Data : h'E0
Data : h'00
Data : h'00
Data : h'01
Data : h'02
Data : h'03
Data : h'01
Data : h'F0
........
Data : h'27
........

除了我写出来的部分其余不是数据部分,你的命令运行的结果是:
Data : h'00
Data : h'01
Data : h'02
Data : h'03
Data : h'0D
Data : h'12
Data : h'27
Data : h'40
Data : h'D8
Data : h'E0
而我要的是:
Data : h'12
Data : h'01
Data : h'00
Data : h'02
Data : h'00
Data : h'00
Data : h'00
Data : h'40
Data : h'D8
Data : h'0D
Data : h'00
Data : h'E0
Data : h'00
Data : h'00
Data : h'01
Data : h'02
Data : h'03
Data : h'01

[ 本帖最后由 lucyhe122 于 2007-2-6 14:53 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2007-02-06 14:48 |只看该作者
完全不能理解你的意思。。。上面那段 你把要得出的结果打一下吧

论坛徽章:
0
8 [报告]
发表于 2007-02-06 14:57 |只看该作者
不好意思,由于文本框太小,我写重了,我修改了上面的文本,现应该能看懂了,我想要得是重复数据段:
Data : h'12
Data : h'01
Data : h'00
Data : h'02
Data : h'00
Data : h'00
Data : h'00
Data : h'40
Data : h'D8
Data : h'0D
Data : h'00
Data : h'E0
Data : h'00
Data : h'00
Data : h'01
Data : h'02
Data : h'03
Data : h'01
数据段长度为18,但我要把所有的重复段都输出到新文本,不能删除,谢谢!

论坛徽章:
0
9 [报告]
发表于 2007-02-06 14:58 |只看该作者
grep Data text|grep -v "h'F0"
这样??

论坛徽章:
0
10 [报告]
发表于 2007-02-06 15:01 |只看该作者
可F0后面还有h'27也是重复的,但我不想要,还有h'00,单次重复的也进来了
我修改了一下命令:grep Data myfile | grep -v “h'F0" | grep -v "h'27"
结果是这样的:
Data : h'12
Data : h'01
Data : h'00
Data : h'02
Data : h'00
Data : h'00
Data : h'00
Data : h'40
Data : h'D8
Data : h'0D
Data : h'00
Data : h'E0
Data : h'00
Data : h'00
Data : h'01
Data : h'02
Data : h'03
Data : h'01
      Data : h'00
      Data : h'00
Data : h'12
Data : h'01
Data : h'00
Data : h'02
Data : h'00
Data : h'00
Data : h'00
Data : h'40
Data : h'D8
Data : h'0D
Data : h'00
Data : h'E0
Data : h'00
Data : h'00
Data : h'01
Data : h'02
Data : h'03
Data : h'01
中间多了两行Data : h'00,我用空格键在前面标出,有办法去掉吗?谢谢!

[ 本帖最后由 lucyhe122 于 2007-2-6 15:17 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP