You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在文本文件每行末尾直接添加行号

如何在文本文件每行末尾直接添加行号

嘿,我明白你的需求啦——想把文本文件里的每行内容后面直接加上对应的行号,比如重复的链接变成带数字后缀的形式对吧?你之前用的命令之所以得到带冒号的结果,是因为paste命令用了冒号作为分隔符,所以才会出现https://example.com/:1这种不符合预期的格式。

给你几个简单可行的解决方法:

  • 用awk实现(最推荐,简洁直观)
    awk自带行号变量NR,可以直接把当前行内容和行号拼接起来:

    # 先在终端预览效果,确认没问题再修改文件
    awk '{print $0 NR}' your_file.txt
    

    如果要直接修改原文件,建议先备份原文件,再用下面的命令(通过临时文件中转,避免意外):

    awk '{print $0 NR}' your_file.txt > temp.txt && mv temp.txt your_file.txt
    

    要是你用的是GNU awk(大部分Linux系统默认是这个),还可以直接原地修改文件:

    awk -i inplace '{print $0 NR}' your_file.txt
    

    这样处理后,你的两行链接就会变成https://example.com/1https://example.com/2,完全符合你的要求。

  • 用sed实现
    如果你更习惯用sed,也可以通过两行sed命令组合实现:

    # 同样先预览效果
    sed = your_file.txt | sed 'N;s/\n//'
    

    原理是第一个sed =会输出每行内容和对应的行号(各占一行),第二个sed用N把行号和上一行内容合并,再用s/\n//去掉中间的换行符,就能把行号直接接在内容末尾了。

⚠️ 小提醒:不管用哪种方法修改原文件,都建议先备份一份原文件,避免操作失误导致数据丢失哦!

备注:内容来源于stack exchange,提问作者Denied Access

火山引擎 最新活动