如何逐行交替合并两个文本文件 无需手动逐行添加echo命令
逐行交替合并两个文本文件的实现方案
不用手动逐行添加echo命令,以下方法可以直接处理上千行的文件,几秒就能出结果:
方案1:使用系统自带paste命令(Linux/macOS适用,零额外依赖)
paste是系统预装的文本处理工具,直接指定换行符作为分隔符,就能实现逐行交替合并的效果:
paste -d '\n' File-1的路径 File-2的路径 > 合并后结果文件.txt
运行完直接打开生成的结果文件,就是你要的问题、答案交替排列的格式。
如果需要直接生成你之前手写的带echo的可执行bash脚本,用awk一行命令就能自动生成,完全不用手动编辑:
awk 'NR==FNR{question[NR]=$0; next} {print "echo \""question[FNR]"\""; print $0}' 问题文件路径 答案文件路径 > 自动生成的问答脚本.sh # 给脚本加执行权限 chmod +x 自动生成的问答脚本.sh
命令逻辑:先把问题文件的所有内容按行存到数组里,读取答案文件时,先输出对应问题的echo命令行,再输出答案行,和你手动写的脚本格式完全一致。
方案2:Python跨平台方案(Windows/macOS/Linux通用)
如果你用Windows系统,或者不想记shell命令,用几行Python脚本就能实现,逻辑直白不容易出错,还能自由控制文件编码避免乱码:
# 将以下代码保存为merge.py,和两个待合并的文件放在同一文件夹 # 注意把文件名改成你自己的实际文件名 with open("File-1", "r", encoding="utf-8") as f_q, \ open("File-2", "r", encoding="utf-8") as f_a, \ open("合并结果.txt", "w", encoding="utf-8") as f_out: for q_line, a_line in zip(f_q, f_a): f_out.write(q_line.rstrip("\r\n") + "\n") f_out.write(a_line.rstrip("\r\n") + "\n")
运行时直接在脚本所在文件夹执行python merge.py,就会自动生成合并好的文件,逐行迭代读取的逻辑哪怕是十万行级别的文件也能流畅处理,不会占满内存。
注意事项
- 合并前确认两个文件行数匹配,避免末尾的内容漏合并
- 如果问题内容里本身包含双引号,生成bash脚本时需要额外做转义,这种情况更推荐直接用Python输出纯文本格式的合并结果,不需要转义特殊字符
内容的提问来源于stack exchange,提问作者U cLoUdz
相关产品推荐
相关产品推荐

