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

如何使用sed命令替换日志中敏感用户名前缀为******?

解决sed替换日志敏感用户名的问题

你的需求是把日志中dataUsername generated is =后面@前的敏感用户名替换为******,保留@及后续域名部分。

问题分析

你之前的命令存在几个问题:

  • 正则表达式[a-zA-ZO-9@.-]中的O是大写字母O,应该是数字0;且该表达式仅匹配单个字符,无法匹配完整的用户名
  • 模式中遗漏了关键的=符号
  • 命令末尾多了一个多余的引号,导致语法错误
  • 替换逻辑没有保留@后的域名部分

正确的sed命令

方法1:使用sed基本正则(无需额外选项)

sed 's/dataUsername generated is = \([^@]*\)@/dataUsername generated is = ******@/g'
  • \([^@]*\):匹配@之前的所有非@字符(即需要替换的敏感用户名),用括号捕获该部分
  • 替换时用******@替代捕获的内容+@,保留后续域名

方法2:使用sed扩展正则(加-r选项,语法更简洁)

sed -r 's/dataUsername generated is = ([^@]*)@/dataUsername generated is = ******@/g'
  • -r启用扩展正则,无需转义括号,写法更直观

测试示例

将你的日志输入:

"Log: abcservice : dataUsername generated is = QWE000387769@as.bbi.co
","stream":"stdout""

执行上述命令后,输出为:

"Log: abcservice : dataUsername generated is = ******@as.bbi.co
","stream":"stdout""

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 09:12:49