本文目录导读:

Linux/Unix 使用 sed 命令
# 基本语法:sed -i 's/查找内容/替换内容/g' 文件名
# -i 表示直接修改文件
# 示例:将所有 "old" 替换为 "new"
sed -i 's/old/new/g' file.txt
# 备份原文件
sed -i.bak 's/old/new/g' file.txt
# 递归处理所有 .txt 文件
find . -name "*.txt" -exec sed -i 's/old/new/g' {} \;
Python 脚本
#!/usr/bin/env python3
def replace_in_file(filename, old_str, new_str):
"""读取文件内容并替换字符串"""
try:
# 读取文件内容
with open(filename, 'r', encoding='utf-8') as f:
content = f.read()
# 执行替换
new_content = content.replace(old_str, new_str)
# 写回文件
with open(filename, 'w', encoding='utf-8') as f:
f.write(new_content)
print(f"已替换文件: {filename}")
except Exception as e:
print(f"处理文件 {filename} 时出错: {e}")
# 使用示例
replace_in_file("example.txt", "old_text", "new_text")
# 批量处理多个文件
import os
for filename in os.listdir('.'):
if filename.endswith('.txt'):
replace_in_file(filename, 'old', 'new')
Python 正则表达式替换
import re
import os
def regex_replace_in_file(filename, pattern, replacement):
"""使用正则表达式替换文件内容"""
try:
with open(filename, 'r', encoding='utf-8') as f:
content = f.read()
# 正则替换
new_content = re.sub(pattern, replacement, content)
with open(filename, 'w', encoding='utf-8') as f:
f.write(new_content)
print(f"已处理: {filename}")
except Exception as e:
print(f"错误: {e}")
# 示例:替换所有数字为 [NUM]
regex_replace_in_file("data.txt", r'\d+', '[NUM]')
Windows PowerShell 脚本
# 简单文本替换
$content = Get-Content -Path "file.txt" -Raw
$newContent = $content -replace "old", "new"
Set-Content -Path "file.txt" -Value $newContent
# 递归处理目录下所有 .txt 文件
Get-ChildItem -Path "C:\path" -Filter "*.txt" -Recurse | ForEach-Object {
$content = Get-Content -Path $_.FullName -Raw
$newContent = $content -replace "old", "new"
Set-Content -Path $_.FullName -Value $newContent
Write-Host "已处理: $($_.FullName)"
}
Ruby 脚本
#!/usr/bin/env ruby
# 简单替换
File.write("file.txt", File.read("file.txt").gsub("old", "new"))
# 带备份
Dir.glob("*.txt").each do |file|
content = File.read(file)
new_content = content.gsub("old", "new")
File.rename(file, "#{file}.bak") # 备份
File.write(file, new_content)
puts "已处理: #{file}"
end
Node.js 脚本
const fs = require('fs');
// 同步方式
const content = fs.readFileSync('file.txt', 'utf8');
const newContent = content.replace(/old/g, 'new');
fs.writeFileSync('file.txt', newContent, 'utf8');
// 异步方式
fs.readFile('file.txt', 'utf8', (err, data) => {
if (err) throw err;
const result = data.replace(/old/g, 'new');
fs.writeFile('file.txt', result, 'utf8', (err) => {
if (err) throw err;
console.log('替换完成');
});
});
高级示例:交互式替换工具
#!/usr/bin/env python3
import os
import re
def interactive_replace():
"""交互式文件内容替换工具"""
filename = input("请输入文件名: ")
if not os.path.exists(filename):
print("文件不存在!")
return
old_str = input("请输入要查找的字符串: ")
new_str = input("请输入替换后的字符串: ")
# 读取文件
with open(filename, 'r', encoding='utf-8') as f:
content = f.read()
# 显示替换预览
preview = content.replace(old_str, new_str)
print(f"\n预览 (前200字符):")
print("原内容:", content[:200])
print("新内容:", preview[:200])
# 确认是否替换
confirm = input("\n确认执行替换? (y/n): ")
if confirm.lower() == 'y':
with open(filename, 'w', encoding='utf-8') as f:
f.write(preview)
print("替换完成!")
else:
print("已取消替换")
if __name__ == "__main__":
interactive_replace()
重要注意事项
- 备份原文件:执行替换前最好备份原文件
- 编码问题:注意文件的编码格式(UTF-8, GBK等)
- 正则表达式特殊字符:使用
re.escape()转义特殊字符 - 权限问题:确保有文件读写权限
- 大文件处理:超大文件建议逐行读取处理
选择哪种方法取决于你的具体需求和运行环境。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播