查看: 766|回复: 9
打印 上一主题 下一主题

[求助] 怎么给文件每一行加上行号?

[复制链接]

该用户从未签到

1

主题

44

回帖

1

积分

童生

Rank: 2

积分
1
跳转到指定楼层
1
发表于 2010-1-7 10:44:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 koime 于 2010-1-7 10:47 编辑

现要编辑一很大的文本文件,因此想给文件每一行加上行号。

我看到网上说:

在文件中插入行号                                    
> perl -pi -e'$_ = sprintf "%04d %s", $., $_' test

             这个脚本在文件中的每一行前面插入 4 位数的行号



我对perl一点都不懂,现在安装了activeperl,请问具体怎样做用才可以让代码在XP系统下运行?

该用户从未签到

45

主题

1420

回帖

1万

积分

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

积分
10971

管理组专用章

2
发表于 2010-1-7 11:36:11 | 只看该作者
为什么要在文本里加上行号?要想去掉就麻烦了。
直接用支持行号显示的软件进行编辑不行么?

该用户从未签到

1

主题

44

回帖

1

积分

童生

Rank: 2

积分
1
3
 楼主| 发表于 2010-1-7 12:16:06 | 只看该作者
谢谢rayman的回复。

不是显示,想插入行号。当然我会事先用替换来插入特定字符,以便以后想去掉行号时也可方便去掉。

该用户从未签到

131

主题

535

回帖

2826

积分

解元

Rank: 5Rank: 5

积分
2826

笑傲江湖章灌水大神章

4
发表于 2010-1-7 15:01:04 | 只看该作者
很简单。
用ultra-edit,先按Alt-C切换到列模式,然后选中最左列后,执行column → insert number 即可。

该用户从未签到

1

主题

44

回帖

1

积分

童生

Rank: 2

积分
1
5
 楼主| 发表于 2010-1-7 15:20:46 | 只看该作者
本帖最后由 koime 于 2010-1-7 15:58 编辑
很简单。
用ultra-edit,先按Alt-C切换到列模式,然后选中最左列后,执行column → insert number 即可。
cdyg 发表于 2010-1-7 15:01


非常感谢。。。

不过对于百万条的数据那个慢啊。
要是能用PERL来,可以看到进度就好了。

该用户从未签到

1

主题

44

回帖

1

积分

童生

Rank: 2

积分
1
6
 楼主| 发表于 2010-1-15 21:47:26 | 只看该作者
很简单。
用ultra-edit,先按Alt-C切换到列模式,然后选中最左列后,执行column → insert number 即可。
cdyg 发表于 2010-1-7 15:01


当某行的文字太多时,ultraedit无法插入序号,会发生错误。

perl下应该可以用这个命令:
perl
-pi -e'$_ = sprintf "%04d %s", $., $_' test

不过貌似是用于LINUX的,请问有谁知道WINDOWS下上述PERL命令的写法。


或者不用PERL,其它脚本语言或数据库什么的可以处理很大的UNICODE文件插入行号么?

先谢谢各位了。

该用户从未签到

131

主题

535

回帖

2826

积分

解元

Rank: 5Rank: 5

积分
2826

笑傲江湖章灌水大神章

7
发表于 2010-1-18 20:31:04 | 只看该作者
某行文字太多时也可以插入行号,不过前提是要将UE的wrap(自动换行)选项给关闭。

该用户从未签到

1

主题

44

回帖

1

积分

童生

Rank: 2

积分
1
8
 楼主| 发表于 2010-1-18 23:40:35 | 只看该作者
嗯,本来就没换行。刚才试了一下,即使行非常长也可以正常插入,可不知有时为什么就出现错误了,估计是文件太大还是怎么的。

该用户从未签到

131

主题

535

回帖

2826

积分

解元

Rank: 5Rank: 5

积分
2826

笑傲江湖章灌水大神章

9
发表于 2010-1-20 17:35:29 | 只看该作者
如果文件太大可以先切割为几个文件再合并。
此外,要注意选择编码为unicode-16方式。

该用户从未签到

1

主题

44

回帖

1

积分

童生

Rank: 2

积分
1
10
 楼主| 发表于 2010-1-20 20:24:34 | 只看该作者
哈,你说的我都有做过。就是觉得很不方便来着。
不管怎样谢谢你。