You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将文件首行复制到末行?寻求更简便的实现方案

几种简便实现文件首行追加到末尾的方法

嘿,这个需求用命令行工具或者极简脚本就能轻松搞定,比复杂代码高效多了!给你分享几个超实用的简便方案:

1. 用awk(最直观的单行命令)

awk天生擅长处理文本行,这个写法清晰易懂:

awk 'NR==1{line=$0} {print} END{print line}' your_file.txt
  • 逻辑:NR==1时把首行内容存到变量line里;{print}打印每一行;最后END块把存好的首行追加到末尾。

2. 用sed(单行流处理)

sed的写法更紧凑,适合熟悉正则的朋友:

sed -n '1h;1!p;${g;p}' your_file.txt
  • 逻辑:1h把首行存入sed的“保留空间”;1!p打印除首行外的所有行;${g;p}在最后一行时,把保留空间的首行取出来并打印,实现追加。

或者用更易懂的组合命令,对新手友好:

first_line=$(head -n1 your_file.txt)
cat your_file.txt <(echo "$first_line")

先通过head提取首行,再用cat把原文件和首行内容拼在一起输出。

3. Python极简脚本

如果想用脚本语言,一行式的原地修改写法(适合小文件场景):

with open("your_file.txt", "r+") as f:
    content = f.read()
    f.seek(0, 2)
    f.write(content.splitlines()[0] + "\n")

要是想生成新文件,写法更短:

open("output.txt", "w").write(open("your_file.txt").read() + open("your_file.txt").readline())

4. 原地修改文件的技巧

如果想直接修改原文件而不是输出到新文件,可以借助sponge工具(需要先安装moreutils包):

awk 'NR==1{line=$0} {print} END{print line}' your_file.txt | sponge your_file.txt

sponge会先接收所有输出内容,再一次性写入原文件,避免覆盖问题。

内容的提问来源于stack exchange,提问作者OXXO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:01:49