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

如何在多个文件中替换字符串并保留原始文件另存新文件

保留原文件的文本替换方案(输出至新路径新文件)

核心逻辑很简单:全程以只读权限读取原始文件内容,完成文本替换后,将结果写入你指定的其他存储路径、使用新文件名保存,整个过程不会对原始文件做任何写入操作,自然能完整保留原文件。

命令行实现(Linux/macOS 环境)

使用sed命令配合输出重定向即可,示例:

  • 同目录下生成替换后的新文件,原文件test.txt保留,新文件命名为test_replace.txt:
    sed 's/待替换的旧文本/替换后的新文本/g' ./test.txt > ./test_replace.txt
  • 替换后文件存储到其他自定义路径,比如存到/home/user/output/目录下:
    sed 's/待替换的旧文本/替换后的新文本/g' ./test.txt > /home/user/output/test_replace.txt

PowerShell 实现(Windows 环境)

直接使用PowerShell内置的内容读取、替换、写入命令即可:
(Get-Content ./test.txt) -replace '待替换的旧文本','替换后的新文本' | Set-Content D:/output/test_replace.txt
执行后原test.txt不会有任何改动,替换结果全部写入D盘output目录下的test_replace.txt文件。

Python 脚本实现

代码逻辑清晰可控,适合批量替换或者有复杂替换规则的场景:

# 按需修改以下配置项
original_path = "./test.txt"  # 原始文件路径
target_path = "./other_dir/test_replace.txt"  # 替换后文件的存储路径+新文件名
old_content = "需要被替换的内容"
new_content = "替换完成的内容"

# 只读模式打开原文件,不会修改原文件
with open(original_path, "r", encoding="utf-8") as f:
    file_content = f.read()

# 执行替换
handled_content = file_content.replace(old_content, new_content)

# 写入新路径的新文件
with open(target_path, "w", encoding="utf-8") as f:
    f.write(handled_content)

注意事项

  • 写入新文件前请确认目标存储的父级目录已经存在,多数工具和代码不会自动创建多级目录,会触发路径不存在的报错
  • 不要把目标文件路径设置成和原文件完全一致,否则会覆盖原文件
  • 如果要处理GB级别的大文件,不要一次性读取全部文件内容,改成逐行读取原文件、逐行写入新文件的逻辑,避免内存占满

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:57:15