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

如何在shell脚本中替换以指定标识开头的行内特定字符串

实现方案

核心命令

sed天然支持按行规则匹配后执行操作,可以精准实现你的需求,不会改动其他行的内容:

  • 仅打印修改后的结果,不改动原文件,可用于效果验证:
    sed '/^A=/s/Mary/Maria/' 你的目标文件名
  • 直接修改原文件(Linux系统通用的GNU sed版本):
    sed -i '/^A=/s/Mary/Maria/' 你的目标文件名
  • 直接修改原文件(macOS系统自带的BSD sed版本):
    sed -i '' '/^A=/s/Mary/Maria/' 你的目标文件名

如果你的行首标识仅为单个A,没有后续的等号,将上述命令中的/^A=/改为/^A/即可。
如果单个A开头的行中存在多个Mary需要全部替换,将替换规则改为s/Mary/Maria/g即可。

命令原理

  • /^A=/ 是行匹配规则,仅筛选行首为A=的行做处理,其他行直接跳过,完全适配你不按行号匹配、仅靠行首标识定位的要求
  • s/Mary/Maria/ 是替换规则,仅在匹配到的行中执行替换操作,因此D开头行包含的Mary不会被修改

可执行shell脚本示例

你可以写成通用脚本直接调用,自动兼容Linux和macOS环境:

#!/bin/bash
# 替换为你实际的文件路径
TARGET_FILE="/data/your_target_file.txt"

# 自动适配不同sed版本执行替换
if sed --version 2>/dev/null | grep -q "GNU sed"; then
  sed -i '/^A=/s/Mary/Maria/' "$TARGET_FILE"
else
  sed -i '' '/^A=/s/Mary/Maria/' "$TARGET_FILE"
fi

给脚本添加执行权限即可运行:chmod +x replace_mary.sh


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:06:03