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

如何通过bash脚本实现打开指定文件并完成字符串替换的功能?

Shell 字符串替换脚本实现

完整脚本代码

#!/bin/bash
# 参数个数校验
if [ $# -ne 3 ]; then
    echo "用法错误:请传入3个参数,依次为 目标文件路径、待替换字符串、替换后字符串"
    exit 1
fi

# 目标文件存在性校验
if [ ! -f "$1" ]; then
    echo "错误:目标文件 $1 不存在"
    exit 1
fi

# 执行字符串替换,兼容Linux/macOS环境
sed -i.bak "s/$2/$3/g" "$1"
# 删除临时备份文件,如需保留备份可删除下行
rm -f "$1.bak"

echo "替换完成"

参数说明

  • 第一个参数:目标文件路径,支持绝对路径/相对路径,需确保执行用户对文件有读写权限
  • 第二个参数:待替换的原字符串,包含空格、正则特殊字符时建议用单引号包裹传入
  • 第三个参数:替换后的目标字符串,特殊字符同理建议用单引号包裹传入

使用方法

  1. 将上述代码保存为replace_str.sh
  2. 给脚本添加执行权限:chmod +x replace_str.sh
  3. 执行脚本,示例:
    ./replace_str.sh ./demo.txt "原始内容" "替换后的内容"
    
    上述命令会将demo.txt文件中所有匹配到的原始内容替换为替换后的内容

常见调整说明

若仅需要替换文件中第一处匹配的原字符串,将脚本中sed命令的后缀g删除即可,调整后替换命令为sed -i.bak "s/$2/$3/" "$1"
若需要保留替换前的原文件备份,删除脚本中rm -f "$1.bak"行即可,执行后会自动生成原文件名.bak的备份文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 02:06:04