LinuxSir.cn,穿越时空的Linuxsir!

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

如何在文本文件每一行开头添加对应行数数字?例如第一行添加1,第二行添加2

[复制链接]
发表于 2008-5-30 11:31:39 | 显示全部楼层 |阅读模式
#! /bin/bash
for i in `seq 1 200000` ;do
sed 's/^.*$/$i|6010000$i|$i|43&/' ring.txt>ring.txt

done;这个sed是整个文件处理,$i|6010000$i|$i|43这些是我想添加的内容,郁闷了,200000行的文本啊,求助各位大虾
发表于 2008-5-30 11:50:13 | 显示全部楼层
用awk是可用做到的,如在文件data的每行添加行号,可用用
awk '{print NR, $0}' data实现
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-30 13:04:38 | 显示全部楼层
多谢feiyuw兄,问题已解决,我是使用这种方式解决的:
#! /bin/bash
i=1
while read line
do
echo "$i $line">>tmp.txt
i=`expr $i + 1`
done <test.txt
呵呵,脑子比较慢,不过这种方式效率比较低,200000条数据要跑几分钟....
回复 支持 反对

使用道具 举报

发表于 2008-5-30 19:00:47 | 显示全部楼层
大家都很强... -.-
其实还能用机器语言来写个程序完成这件事... > <
不过我的选择是先...
  1. $ man nl
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-5-31 11:19:35 | 显示全部楼层
cat -n
回复 支持 反对

使用道具 举报

发表于 2008-6-1 01:19:34 | 显示全部楼层
赞,楼上两位都强!
回复 支持 反对

使用道具 举报

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

本版积分规则

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