免费注册 查看新帖 |

Chinaunix

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

请问用perl如何处理这种特殊格式的文档 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-25 08:41 |只看该作者 |倒序浏览

  1. v1  v2  v3  v4  v5
  2.   v6   v7    v8
  3. 1   2   3    4      5
  4.   6     7    8

  5. 1.1 2   3.2  11   6
  6.   s     f     9

  7. 3    4    6    9     4
  8.   0    2     6
  9. ......
  10. ......
复制代码


文档的格式如上所示,有变量V1至V8,分别有对应值,本意是V1-V8在一行内显示,对应的值也要在一行内显示,可是 现在除了完整的行被回车分成两行外,每行之间还被多插了个回车,导致上面的情况。假设有10000行。

如何做到显示正确的格式?如下:


  1. v1  v2  v3  v4  v5  v6   v7    v8
  2. 1    2   3     4    5  6     7    8
  3. 1.1 2   3.2  11   6  s     f    9
  4. 3    4   6     9    4  0     2    6
  5. ......
  6. ......
复制代码


谢谢大家!

[ 本帖最后由 hjp0021 于 2008-9-25 08:44 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-09-25 09:40 |只看该作者
两个方法:

1, 把开头以空格的全部移到上一行,可以用re
2,就是每读出八个写一行

论坛徽章:
0
3 [报告]
发表于 2008-09-25 10:07 |只看该作者
把奇数行的回车去掉不就行了?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2008-09-25 10:13 |只看该作者
while(<DATA>){
    chomp;
    print;
    /\S/ and print scalar <DATA>;
}

[ 本帖最后由 flw 于 2008-9-25 10:21 编辑 ]

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
5 [报告]
发表于 2008-09-25 10:15 |只看该作者
参见楼上楼下,

[ 本帖最后由 ynchnluiti 于 2008-9-25 10:42 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2008-09-25 10:20 |只看该作者
perl -l0ne 'print; /\S/ and print scalar <>' /path/to/your/file

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2008-09-25 10:21 |只看该作者
我觉得还是尽量不要滥用正则表达式比较好。

论坛徽章:
0
8 [报告]
发表于 2008-09-25 10:59 |只看该作者

回复 #7 flw 的帖子

难道你没有用re?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
9 [报告]
发表于 2008-09-25 11:11 |只看该作者
原帖由 forlorngenius 于 2008-9-25 10:59 发表
难道你没有用re?

小喷油,用和滥用是两码事。学着点儿。

论坛徽章:
0
10 [报告]
发表于 2008-09-25 11:18 |只看该作者
切,你个大喷油, 悠着点

[ 本帖最后由 forlorngenius 于 2008-9-25 11:34 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP