掌上百科 - PDAWIKI

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1045|回复: 9

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

[复制链接]

该用户从未签到

发表于 2010-1-7 10:44:53 | 显示全部楼层 |阅读模式
本帖最后由 koime 于 2010-1-7 10:47 编辑
2 s9 j8 w6 y  H4 ], e6 |: ?0 H2 F* d( K
现要编辑一很大的文本文件,因此想给文件每一行加上行号。1 O& |# m4 O% ?" h3 T7 o

( }5 b& w- {6 P8 m我看到网上说:
6 b% D8 k& s) ?. L3 E7 Z7 w+ X- U
在文件中插入行号                                    
> perl -pi -e'$_ = sprintf "%04d %s", $., $_' test
" l5 Y1 I9 w" V  [7 _5 g
: ]. A7 j. k3 u+ p+ G6 ?
             这个脚本在文件中的每一行前面插入 4 位数的行号
9 M4 @/ _( ?; B0 _
# {# h$ M2 m- v3 U
. L4 B) W" N/ t$ f) a4 ^8 B5 m- v+ K* k0 I
我对perl一点都不懂,现在安装了activeperl,请问具体怎样做用才可以让代码在XP系统下运行?

该用户从未签到

发表于 2010-1-7 11:36:11 | 显示全部楼层
为什么要在文本里加上行号?要想去掉就麻烦了。
. A' B0 u/ g1 }9 ^直接用支持行号显示的软件进行编辑不行么?

该用户从未签到

 楼主| 发表于 2010-1-7 12:16:06 | 显示全部楼层
谢谢rayman的回复。
1 Q) e8 a  i4 S5 o9 n4 ^2 j) A: G/ S2 Z; A0 @$ ?% J
不是显示,想插入行号。当然我会事先用替换来插入特定字符,以便以后想去掉行号时也可方便去掉。

该用户从未签到

发表于 2010-1-7 15:01:04 | 显示全部楼层
很简单。+ O& n3 w  k  F! r5 J5 v4 T7 A) s
用ultra-edit,先按Alt-C切换到列模式,然后选中最左列后,执行column → insert number 即可。

该用户从未签到

 楼主| 发表于 2010-1-7 15:20:46 | 显示全部楼层
本帖最后由 koime 于 2010-1-7 15:58 编辑
% Y( q$ Q- v8 F2 T' h/ W4 O
很简单。; u9 J  S8 }! U
用ultra-edit,先按Alt-C切换到列模式,然后选中最左列后,执行column → insert number 即可。
* h' @) E; A' s  e8 S0 rcdyg 发表于 2010-1-7 15:01
7 n8 b  z$ n/ [* W9 ]9 T
) {& f% e5 ~% M- t3 b6 E% c
非常感谢。。。
) P. J7 e( K* c' u9 {3 ^) @) c. |
- ^6 V! ^: V0 n3 b2 A不过对于百万条的数据那个慢啊。# h, g/ v5 l2 d  Q6 l6 X& ~
要是能用PERL来,可以看到进度就好了。

该用户从未签到

 楼主| 发表于 2010-1-15 21:47:26 | 显示全部楼层
很简单。0 x- Y  m! X, [1 v6 w
用ultra-edit,先按Alt-C切换到列模式,然后选中最左列后,执行column → insert number 即可。+ m) v" p0 f$ T+ \1 o5 K
cdyg 发表于 2010-1-7 15:01

  Z- r0 z) |. ~, D7 z* Q* U7 P( `' [# ?# d$ E
当某行的文字太多时,ultraedit无法插入序号,会发生错误。
* M# R4 z2 n$ h, p: |/ U: ~/ o. _3 |% N2 t8 v, R
perl下应该可以用这个命令:
+ Z. L1 P3 s+ f- y$ b, {perl
-pi -e'$_ = sprintf "%04d %s", $., $_' test2 {) v# Y$ e$ a7 S% X2 ~% P. A

2 P- }- k% X; o( \' ^- J不过貌似是用于LINUX的,请问有谁知道WINDOWS下上述PERL命令的写法。  D8 s+ I! g9 R* v) [: S% i, E
4 h. e2 `4 }; K0 o
- g5 c( z! I6 v( }. i2 ^
或者不用PERL,其它脚本语言或数据库什么的可以处理很大的UNICODE文件插入行号么?) [, @( s, B: }% I1 y
$ Z% g; b5 I. n% E
先谢谢各位了。

该用户从未签到

发表于 2010-1-18 20:31:04 | 显示全部楼层
某行文字太多时也可以插入行号,不过前提是要将UE的wrap(自动换行)选项给关闭。

该用户从未签到

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

该用户从未签到

发表于 2010-1-20 17:35:29 | 显示全部楼层
如果文件太大可以先切割为几个文件再合并。
! o( E7 Q' y* }3 n此外,要注意选择编码为unicode-16方式。

该用户从未签到

 楼主| 发表于 2010-1-20 20:24:34 | 显示全部楼层
哈,你说的我都有做过。就是觉得很不方便来着。. X& ~: @* L  v7 `
不管怎样谢谢你。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

小黑屋|手机版|Archiver|PDAWIKI |网站地图

GMT+8, 2025-5-22 03:52 , Processed in 0.023408 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表