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

合并含指定字符串文件名的文件时数据重复9次的原因咨询

为什么合并文件时内容会重复写入?

嘿,这个问题我太熟了!十有八九是你写脚本的时候不小心搞了嵌套循环——就是外层循环和内层循环都在遍历那几个目标文件,导致每个文件被重复读取写入了number_of_files次(3×3=9,刚好和你说的每个文件写9次完全对上)。

你大概率踩了这个坑

举个例子,假设你的脚本是类似这样的(拿shell脚本举例):

number_of_files=3
# 外层循环跑3次
for i in $(seq 1 $number_of_files); do
  # 内层循环又跑3次,每次把3个文件都写一遍
  for j in $(seq 1 $number_of_files); do
    cat FOO$j.TXT >> target.txt
  done
done

这样外层循环执行3轮,每一轮内层循环都会把FOO1到FOO3全写一遍,最终每个文件的内容就被重复了3次,总共9次写入,完美符合你描述的“1、2、3、1、2、3……”循环重复的现象。

怎么改?用单层循环就搞定

只需要遍历一次所有目标文件,把它们依次追加到目标文件里就行:

number_of_files=3
for i in $(seq 1 $number_of_files); do
  cat FOO$i.TXT >> target.txt
done

如果你的文件名规律统一,甚至可以不用循环,直接用通配符更简洁:

cat FOO*.TXT >> target.txt

这样每个文件只会被读取并写入一次,就不会有重复内容了。

额外排查小tip

如果不是嵌套循环的问题,那可以检查下是不是每次循环都没有正确重置文件读取指针?不过这种情况在常见的脚本语言(比如shell、Python)里很少见,绝大多数情况还是循环嵌套导致的重复遍历。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:05:46