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

在Linux下用egrep通过正则匹配文件中的密码格式

用egrep查找符合特定格式的密码字符串

需求说明

要查找的密码格式需满足以下规则:

  • 前缀为password、pwd或pass三者之一,后跟=(两侧可含任意数量空格)和对应值
  • 值可以被单引号、双引号包裹,或者无引号
  • 值不能以{、&、&&开头

匹配示例

password = "test123ABc#&$"
pwd=test123ABc#&$
pwd =    'test123ABc#&$'
pass  =    'test123456&'

不匹配示例

password=&testpw
pwd = "{test123@#"
password  =   "&&test123"
pass={test123@

解决方案正则表达式

符合要求的正则表达式如下:

^\s*(password|pwd|pass)\s*=\s*(?:'(?!&|{)[^']*'|"(?!&|{)[^"]*"|(?!&|{)[^&\s{]+)\s*$

正则表达式说明

  • 开头允许任意空白字符,精准匹配指定的三个前缀之一
  • 匹配带任意空格的=符号,兼容两侧有无空格的情况
  • 分三种场景处理值的格式:
    1. 单引号包裹值:引号后不能以&或{开头,内部为任意非单引号字符
    2. 双引号包裹值:规则与单引号场景一致
    3. 无引号值:不能以&或{开头,为连续的非空格、非&、非{字符
  • 结尾允许任意空白字符,兼容行尾空格的情况

完整命令

将正则表达式代入egrep命令,最终可执行命令如下:

egrep -HRi '^\s*(password|pwd|pass)\s*=\s*(?:'\''(?!&|{)[^'\''*'\''|"(?!&|{)[^"]*"|(?!&|{)[^&\s{]+)\s*$' <path to directory>

注:由于Shell对单引号的转义要求,正则中的单引号需用'\''转义,确保命令正常执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:01:18