LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1613|回复: 10

如何去除编辑器自动生成的行号

[复制链接]
发表于 2008-12-31 09:32:31 | 显示全部楼层 |阅读模式
有些编辑器如:vim emacs等,如果要是设置为自动生成行号的话,就会在行首产生数字行号。从网上找的配置文件等,有时行首就有数字行号。如下面所示:
1 (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xpvf -)
2 # 从一个目录移动整个目录树到另一个目录
3 # [courtesy Alan Cox <a.cox@swansea.ac.uk>, with a minor change]
4
5 # 1) cd /source/directory    源目录
6 # 2) &&                      与操作,如果cd命令成功了,那么就执行下边的命令
7 # 3) tar cf - .              'c'创建一个新文档,'f'后边跟'-'指定目标文件作为stdout
有没有什么比较好的方法把数字行号去除,而保留后面的内容呢?
谢谢!!
发表于 2008-12-31 09:57:59 | 显示全部楼层
按esc进入命令模式,输入":set nonu",双引号内的。如果需要行号就输入":set nu"。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-31 10:17:48 | 显示全部楼层
我的意思是从外面,比如网上粘贴的文本文件,它的前面有时会有以前编辑器留下的行号,如果把它直接弄到编辑器里,就会把以前的行号作为文本内容,我的意思是如何把这个行号去除了?
谢谢!!
回复 支持 反对

使用道具 举报

发表于 2008-12-31 21:08:54 | 显示全部楼层
vim里设个宏就可以了,直接删除每行头几个数字

或者用vim的替换功能
:1,$  s/^[1234567890]*//g
或者
:1,$  s/^[1234567890]* *//g
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-1 08:30:18 | 显示全部楼层
谢谢,
楼上的做法是可以的!!
回复 支持 反对

使用道具 举报

发表于 2009-1-2 19:06:13 | 显示全部楼层
用find/xargs加sed可以批量处理这种文件,你是要过滤网上下载的小说吧。
回复 支持 反对

使用道具 举报

发表于 2009-1-2 20:42:42 | 显示全部楼层
sed -r 's/^[0-9]+//' yourfile
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-3 22:14:16 | 显示全部楼层
谢谢楼上两位!
但是有时候如果文件很长的时候(有几百行的时候),一位数字行号前有2个空格,二位数字前有一个空格,这时候我有应该怎么去除前面的行的空格和数字?
谢谢!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-3 22:18:56 | 显示全部楼层
我对awk不太了解,我想问一下可以使用它把第一个域去除(也就是把数字行号的那个抽取域去了),保留其它的域吗?
谢谢大家了!
回复 支持 反对

使用道具 举报

发表于 2009-1-4 10:06:26 | 显示全部楼层
Post by wzl12356;1933560
谢谢楼上两位!
但是有时候如果文件很长的时候(有几百行的时候),一位数字行号前有2个空格,二位数字前有一个空格,这时候我有应该怎么去除前面的行的空格和数字?
谢谢!!


sed -r 's/^ *[0-9]+//' yourfile
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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