如何替换存储在文本文件中列表的指定字符串并回存到文件
解决方案
以下提供不同场景下的实现方式:
方式1:Linux/macOS 终端一行命令(sed工具)
直接用sed的原位编辑功能匹配修改,无需额外生成临时文件:
# BSD sed(macOS默认)执行以下命令 sed -i '' '/Adrian/s/D2 Pending/D2 Completed/g' 你的文件路径.txt # GNU sed(大部分Linux发行版默认)执行以下命令 sed -i '/Adrian/s/D2 Pending/D2 Completed/g' 你的文件路径.txt
命令说明:
/Adrian/规则只会匹配包含Adrian的行,s/旧字符串/新字符串/g是替换逻辑,-i参数指定直接修改原文件。
方式2:Python 跨平台脚本
兼容所有操作系统,不需要记命令参数:
# 替换为你的实际文件路径 file_path = "你的文件路径.txt" # 读取文件全量内容 with open(file_path, "r", encoding="utf-8") as f: lines = f.readlines() # 仅修改匹配到Adrian的行 modified_lines = [] for line in lines: if "Adrian" in line: line = line.replace("D2 Pending", "D2 Completed") modified_lines.append(line) # 把修改后的内容写回原文件 with open(file_path, "w", encoding="utf-8") as f: f.writelines(modified_lines)
直接运行上述脚本即可完成修改,不会改动其他行的内容。
方式3:Windows PowerShell 命令
(Get-Content 你的文件路径.txt) -replace 'Adrian(.*)D2 Pending', 'Adrian$1D2 Completed' | Set-Content 你的文件路径.txt
内容的提问来源于stack exchange,提问作者Andrew Ng
相关产品推荐
相关产品推荐

