求助: 一个perl处理文本问题

求助: 一个perl处理文本问题

因写毕业论文, 需要在一篇文章中, 每句前加上序号(1,2,3...)

刚刚开始学编程, 请问程序应该怎样写?

非常感谢!


QUOTE:
原帖由 abnick 于 2007-5-5 16:45 发表
因写毕业论文, 需要在一篇文章中, 每句前加上序号(1,2,3...)
刚刚开始学编程, 请问程序应该怎样写?
非常感谢!

给个思路,
第一行插入 1

然后
寻找  <换行符 >,
替换为  <换行符> + N

KO.

PS: 如果你的句定义为 : 以"句号"结尾的句子,
哪就把我说得 <换行符> 改成<句号> 就可以了.

cat -n your_doc > new_doc
楼上的cat -n非常好用,如果一定要坚持用Perl,可以

[Copy to clipboard] [ - ]
CODE:
perl -pi -e '$_ = "$. " . $_'   txtfile

直接用我写的工具,不用编码直接实现你要的功能.参见本论坛帖子:我用perl写的规则文件生成器(中英日版)
地址:http://bbs.chinaunix.net/viewthr ... &extra=page%3D3
非常感谢你的帮助。

但是在这个问题里,如何定义一个句子(自然语句, 不是一行) ,就是个问题了。因为句子不仅可以以句号结尾,也可以以问号和感叹号结尾。所以还是没法实现。

有好的办法定义一个句子吗?  

再次感谢你的热心帮助.


QUOTE:
原帖由 wrongdna 于 2007-5-5 18:48 发表
cat -n your_doc > new_doc

非常感谢. 这个应该能实现每行加上行号, 不是每个句子.

我想在每个句子 (以句号, 问号, 感叹号, 结尾的句子)  前加上数字 1, 2, 3...

Thank you very much!


QUOTE:
原帖由 福瑞哈哥 于 2007-5-5 19:11 发表
楼上的cat -n非常好用,如果一定要坚持用Perl,可以

[Copy to clipboard] [ - ]
CODE:
perl -pi -e '$_ = "$. " . $_'   txtfile


首先感谢你的热心帮助。 我试了, 得到的错误提示:

Can't find string terminator " ' " anywhere before EOF at -e line 1.

由于刚开始学习perl, 一时搞不清问题出在那里。还请指点。

p.s. 句子:以句号,问号,感叹号,结尾的自然语句; 不是行。
nl your_doc > new_doc
#!/usr/bin/perl

use strict;
use warnings;

open FILE, "test.txt" or die;
open OUT, ">>tt.tt" or die;

while (<FILE>) {
   s/(.*)/$.($1)/;
   print OUT $_;
}