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

如何用GNU sed或CLI命令匿名化哈希并保留特定$符号

哈希匿名化:替换行首到第一个冒号的内容(保留冒号前的$)

这里提供两种单行CLI方案,均支持管道输入,适配你的需求:

方案1:GNU sed实现

sed -E 's/^.*(\$):/\1:/; s/^[^:]+:/REDACTED:/'

规则说明

  • 第一个替换规则^.*(\$)::匹配行首到$:的全部内容,仅保留$:部分,专门处理COMPUTER$:这种前缀末尾直接跟$的场景。
  • 第二个替换规则^[^:]+::匹配行首到第一个冒号的非空内容,统一替换为REDACTED:,覆盖所有其他前缀(包括DOMAIN\$why:这种包含$但不在冒号前的情况)。

方案2:awk实现(更直观)

awk -F: '{ $1 = ($1 ~ /\$$/) ? "$" : "REDACTED"; print }' OFS=:

逻辑说明

  • -F: 用冒号作为字段分隔符,提取第一个冒号前的前缀内容($1)。
  • 判断前缀是否以$结尾:是则将前缀替换为$,否则替换为REDACTED。
  • OFS=: 确保输出时仍用冒号分隔字段,保持原始格式结构。

测试验证

针对你的示例输入:

USER:1234:aad3b435b:abcdef:::
COMPUTER$:4321:aad3b435b:abcdef:::
DOMAIN\bleh:5678:eaad3b4:fedcba:::
DOMAIN\$why:5678:eaad3b4:fedcba:::

两种方案均会输出符合预期的结果:

REDACTED:1234:aad3b435b:abcdef:::
$:4321:aad3b435b:abcdef:::
REDACTED:5678:eaad3b4:fedcba:::
REDACTED:5678:eaad3b4:fedcba:::

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:11:08