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

如何使用sed命令精确匹配替换rohit.com为goyal.com?

问题解决:用sed精准替换独立的rohit.com

问题分析

你当前的命令存在两个核心问题:

  1. 未转义.:正则表达式中.是通配符,会匹配任意字符,正确写法应为rohit\.com;
  2. \b单词边界不适用:\b匹配单词字符(字母/数字/下划线)与非单词字符的边界,导致1.rohit.com里的.和r之间、rohit.com.abc里的m和.之间都被识别为边界,从而错误触发替换。

结合你的期望输出,需要只替换被空白字符包围(或在行尾)、且前面有非空白配置项的rohit.com,同时排除子域名、后缀拼接的情况,以及单独一行的rohit.com。

解决方案

使用以下sed命令即可实现需求:

sed -E 's/\srohit\.com(\s|$)/ goyal.com\1/' a.txt

命令解释

  • -E:启用扩展正则表达式,简化语法;
  • \s:匹配任意空白字符(空格、制表符等),确保rohit.com前面是空白,排除子域名(如1.rohit.com)的情况;
  • rohit\.com:转义.,精准匹配目标字符串;
  • (\s|$):匹配后面的空白字符或行尾,确保rohit.com后面没有其他字符(如rohit.coma、rohit.com.abc);
  • goyal.com\1:替换为目标字符串,并保留原来的空白/行尾(\1引用前面括号里的匹配内容)。

执行后输出将完全符合你的期望:

ServerAdmin webmaster@localhost
 ServerName goyal.com 
 1.rohit.com
 rohit.coma
 rohit.com.abc  
 ServerAlias goyal.com
 rohit.com

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:20:33