掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 841|回复: 9

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

[复制链接]

该用户从未签到

发表于 2010-1-7 10:44:53 | 显示全部楼层 |阅读模式
本帖最后由 koime 于 2010-1-7 10:47 编辑
4 _7 M: N6 ~4 h! b4 K# G8 L7 ?. z9 c  k/ r8 j
现要编辑一很大的文本文件,因此想给文件每一行加上行号。( w+ B- J# S: |- f0 O4 a, [& S0 R7 C7 n: T
- c" Y* P% t! M& h# i6 Q, G
我看到网上说:3 d* G% o2 X$ P8 S& \
5 V8 {( l4 N, v" b2 N
在文件中插入行号                                    
> perl -pi -e'$_ = sprintf "%04d %s", $., $_' test; }" D6 {, b+ M8 ~9 o6 ^8 N

9 U; \, f- s; ^8 n             这个脚本在文件中的每一行前面插入 4 位数的行号( D* l5 V5 N2 `2 b' [- l9 G/ H
9 u2 @" Q) y- B' `

; x( {' E+ T  c3 _) @7 z) S2 n  O: [# i5 v: u
我对perl一点都不懂,现在安装了activeperl,请问具体怎样做用才可以让代码在XP系统下运行?

该用户从未签到

发表于 2010-1-7 11:36:11 | 显示全部楼层
为什么要在文本里加上行号?要想去掉就麻烦了。
0 p' Q, q. Z2 C( O( z! D  G  `直接用支持行号显示的软件进行编辑不行么?

该用户从未签到

 楼主| 发表于 2010-1-7 12:16:06 | 显示全部楼层
谢谢rayman的回复。/ _' F; u5 g, Q( k9 @2 e! E
$ [& c2 f+ |' H
不是显示,想插入行号。当然我会事先用替换来插入特定字符,以便以后想去掉行号时也可方便去掉。

该用户从未签到

发表于 2010-1-7 15:01:04 | 显示全部楼层
很简单。$ f4 o# r! X: H. i$ q1 p) `, o  }
用ultra-edit,先按Alt-C切换到列模式,然后选中最左列后,执行column → insert number 即可。

该用户从未签到

 楼主| 发表于 2010-1-7 15:20:46 | 显示全部楼层
本帖最后由 koime 于 2010-1-7 15:58 编辑
* r2 Y2 n( ~8 L8 _
很简单。
( B4 |! v- n3 x7 s0 z2 z) |4 m1 w用ultra-edit,先按Alt-C切换到列模式,然后选中最左列后,执行column → insert number 即可。
' `$ R) H; C) l: U& R8 _) ~) |cdyg 发表于 2010-1-7 15:01
0 S& Q: z: ]1 }2 Z8 n
7 w8 Y8 T5 `; c9 o/ v
非常感谢。。。8 h& }3 L8 \( g1 ]6 [

" O9 ?4 ~5 Z/ K' W9 b9 |不过对于百万条的数据那个慢啊。
  M& D8 l8 I% E" w* m$ Y5 W要是能用PERL来,可以看到进度就好了。

该用户从未签到

 楼主| 发表于 2010-1-15 21:47:26 | 显示全部楼层
很简单。
( N, y0 v3 a& H5 i4 B用ultra-edit,先按Alt-C切换到列模式,然后选中最左列后,执行column → insert number 即可。2 |& n- c$ O' a  l
cdyg 发表于 2010-1-7 15:01
8 Q; b: C$ I: W- W1 B# U! Q
+ h* t2 d# c: g. n$ f! B4 Q
当某行的文字太多时,ultraedit无法插入序号,会发生错误。9 z, Z  v. q7 h3 @5 w

- r# m9 [* b+ C4 S( K" F$ n6 Aperl下应该可以用这个命令:% ^+ z6 G4 i4 n0 R: P+ r
perl
-pi -e'$_ = sprintf "%04d %s", $., $_' test
0 l5 R8 W4 g6 L) }, B/ |$ n4 v; j3 T- i" m
不过貌似是用于LINUX的,请问有谁知道WINDOWS下上述PERL命令的写法。8 t+ D; w2 H5 p/ l8 j# Q1 I

4 m) b5 l* ]$ t8 y; z+ |. d3 i8 O( P3 q. ?3 t# b- C
或者不用PERL,其它脚本语言或数据库什么的可以处理很大的UNICODE文件插入行号么?
( E6 }, F/ ^/ g* G% Q
+ B3 _' N; o) f2 I# v6 z, @先谢谢各位了。

该用户从未签到

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

该用户从未签到

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

该用户从未签到

发表于 2010-1-20 17:35:29 | 显示全部楼层
如果文件太大可以先切割为几个文件再合并。
9 L- u. b; W1 N; }此外,要注意选择编码为unicode-16方式。

该用户从未签到

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

本版积分规则

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

GMT+8, 2024-5-18 03:36 , Processed in 0.065190 second(s), 13 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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