求助,请各位高手支招,谢谢!
时间:2010-11-29
来源:互联网
本帖最后由 net_lin 于 2010-11-29 23:51 编辑
想对一个若干文本进行处理和格式化输出,用shell处理起来很麻烦,效率也不高,想请教一下perl怎么处理
文本类似以下格式:
段落1
id 字段1 字段2 字段3 ...
0x3138 256 456 115
0x3139 0 32 654
0x3145 156 56 185
0x3137 0 32 1654
段落2
id 字段18 字段19 字段20 ...
0x3138 256 456 115
0x3139 0 32 654
0x3145 156 56 185
0x3137 0 32 1654
段落3
id1 id2 字段1 字段2 字段3 ...
0x0054 1 fasf 412 8098
0x0054 2 asf 1412 1098
0x0014 1 fdassf 12 109
段落4
id1 id2 字段16 字段17 字段18 ...
0x0054 1 kmsdf 42 98
0x0054 2 fadff 2 0
共有4个段落,段落间空行分隔,每个段落头有段落头名称,每个段落头的下一行为字段名称,字段个数不确定,字段间以多个空格分隔,段落1和段落2通过第一个字段(id)可进行关联,段落3和段落4通过第一个字段(id1)和第二个字段(id2)可关联,要求将第1个段落和第2个段落关联后将所有字段放在同一行内输出(字段分隔符为逗号),即输出为:
id,字段1,字段2,字段3 ... 字段18,字段19,字段20 ...
第3个段落和第4个段落也实现同样的功能,(注:段落间的关联可能存在找不到对应的关联行,找不到的关联由默认值0替代)
额外的要求为将输出对指定的某几个字段进行排序(升序或降序),各自取出按这几个字段排序后的前10行(去重后输出),需要考虑一定的效率,如1M大小的文件处理不超过2秒,请各位高手支招,谢谢!
想对一个若干文本进行处理和格式化输出,用shell处理起来很麻烦,效率也不高,想请教一下perl怎么处理
文本类似以下格式:
段落1
id 字段1 字段2 字段3 ...
0x3138 256 456 115
0x3139 0 32 654
0x3145 156 56 185
0x3137 0 32 1654
段落2
id 字段18 字段19 字段20 ...
0x3138 256 456 115
0x3139 0 32 654
0x3145 156 56 185
0x3137 0 32 1654
段落3
id1 id2 字段1 字段2 字段3 ...
0x0054 1 fasf 412 8098
0x0054 2 asf 1412 1098
0x0014 1 fdassf 12 109
段落4
id1 id2 字段16 字段17 字段18 ...
0x0054 1 kmsdf 42 98
0x0054 2 fadff 2 0
共有4个段落,段落间空行分隔,每个段落头有段落头名称,每个段落头的下一行为字段名称,字段个数不确定,字段间以多个空格分隔,段落1和段落2通过第一个字段(id)可进行关联,段落3和段落4通过第一个字段(id1)和第二个字段(id2)可关联,要求将第1个段落和第2个段落关联后将所有字段放在同一行内输出(字段分隔符为逗号),即输出为:
id,字段1,字段2,字段3 ... 字段18,字段19,字段20 ...
第3个段落和第4个段落也实现同样的功能,(注:段落间的关联可能存在找不到对应的关联行,找不到的关联由默认值0替代)
额外的要求为将输出对指定的某几个字段进行排序(升序或降序),各自取出按这几个字段排序后的前10行(去重后输出),需要考虑一定的效率,如1M大小的文件处理不超过2秒,请各位高手支招,谢谢!
作者: net_lin 发布时间: 2010-11-29
建个 hash, key 为 id 值为(字段 => 值)的 hashref。
{
id => {
字段1 => 值1,
字段2 => 值2,
...
},
...
}
你用数据库更简单
{
id => {
字段1 => 值1,
字段2 => 值2,
...
},
...
}
你用数据库更简单
作者: zhlong8 发布时间: 2010-11-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28