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

如何在Bash中用单个正则表达式替换日志敏感头信息

用Bash正则替换敏感请求头值为***

需求

给定iOS应用的网络请求日志片段,需通过单个Bash正则表达式匹配名称包含secret或authorization(大小写不敏感)的请求头,将其对应值替换为***,以实现日志的安全分享。

原日志内容

Http: createRide (422): http(serviceResponse: POST https://staging.test.com/sometpath {
   ["Authorization": "Bearer xxxxxxxxxx", "X-REQUEST-ID": "5FE8D9C0-B3F0-4DAE-9188-A0CB1906EB5D", "X-Client-Version": "3.0.0", "X-Client-Identifier": "something", "Content-Type": "application/json", "X-Api-Version": "1", "X-Client-Secret": "xxxxxxxxx"]
 }
  {
  "data" : {
  }

期望替换结果

Http: createRide (422): http(serviceResponse: POST https://staging.test.com/sometpath {
   ["Authorization": "***", "X-REQUEST-ID": "5FE8D9C0-B3F0-4DAE-9188-A0CB1906EB5D", "X-Client-Version": "3.0.0", "X-Client-Identifier": "something", "Content-Type": "application/json", "X-Api-Version": "1", "X-Client-Secret": "***"]
 }
  {
  "data" : {
  }

解决方案

使用sed命令完成替换,命令如下:

sed -E -i.bak 's/("[^"]*((secret|authorization)[^"]*)": ")[^"]*"/\1***"/gi' your-log-file.txt

命令说明

  • -E:启用扩展正则表达式,简化语法
  • -i.bak:原地修改日志文件,并生成后缀为.bak的原文件备份(若不需要备份,可改为-i)
  • /gi:g表示全局匹配替换,i表示忽略大小写
  • 正则逻辑:
    1. 匹配请求头的名称部分(包含secret或authorization,大小写不敏感)及后续的: "
    2. 匹配头值部分(双引号内的任意内容)
    3. 将头值替换为***,保留原头名格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 21:03:19