正则表达式要替换Linux Shell脚本中的密码吗?

时间:2019-07-17 14:17:32

标签: regex linux shell

我有一个字符串,其中包含密码等参数。-P之后的任何字符都是密码,后跟一些其他参数,例如-H host等。参数可以按任何顺序

Ex1:sh script.ksh -U test_user -P somepwd -H somehost

Ex2:sh script.ksh -U test_user -H somehost -P somepwd

现在,我想用删除的单词替换密码

结果1:sh script.ksh -U test_user -P REMOVED -H somehost

结果2:sh script.ksh -U test_user -H somehost -P REMOVED

怎么可能。我尝试了以下方法。

sed -i -E "s/(.*[-]P)(\b.*\b)(.*)/\1\something\3/" test_pwd_replace.txt

但是,它不起作用。请帮忙。

1 个答案:

答案 0 :(得分:2)

您可以使用此sed

sed -i -E 's/-P[[:blank:]]*[^[:blank:]]+/-P REMOVED/' test_pwd_replace.txt

[[:blank:]]等同于与空白或制表符匹配的[ \t]