怎么在文件中每行后面添加行数号(shell命令)

RT,一个文件中有多行,在每行后面添加一个行号,shell命令,谢谢... RT,一个文件中有多行,在每行后面添加一个行号,shell命令,谢谢 展开
 我来答
百度网友5311d79
推荐于2017-11-26 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3141万
展开全部

用awk,一条命令就可以搞定:

awk '{print $0" "FNR}' file.txt >result.txt

其中,$0表示当前处理的文件行内容,FNR表示当前处理的文件行行号。

结果存在result.txt中。

 

为拓展思路,下面用一个不同的方法:

用sed得到每行行号,存入一个tmp文件,然后用paste合并这两个行数相同的文件就得到了。

假设你的原始文件名称为file.txt。

#!/bin/sh
sed -n '=' file.txt >tmp
paste file.txt tmp >result.txt
rm -f tmp
百度网友f1edbb8
2013-08-07 · TA获得超过1048个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:517万
展开全部

1、awk比较简单,就像楼上写的那样

2、sed有点复杂,以下是sed:

sed '=' test2 |sed -n 'h;n;G;s/\n/ /p;'

 

注释:

1、首先利用=给每行前插入一行行号

2、利用h,将奇数行(行号)复制到保持空间,然后n将偶数行放到模式空间,之后G将奇数行从保持空间转移至模式空间后,因为复制行的时候带的有\n(换行符),故用s将换行符替换为空格,最终模式空间的内容就是「偶数行 奇数行」然后p输出出来

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sillybest
2013-08-07 · TA获得超过257个赞
知道小有建树答主
回答量:283
采纳率:0%
帮助的人:257万
展开全部
#!/bin/bash
a=1
while read line
do
echo $line" "$a
a=`expr $a + 1`
done<$1

以上代码存成test.sh
chmod +x test.sh
./test.sh 要修改的文件名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式