我有一个字符串,其中包含密码等参数。-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
但是,它不起作用。请帮忙。
答案 0 :(得分:2)
您可以使用此sed
:
sed -i -E 's/-P[[:blank:]]*[^[:blank:]]+/-P REMOVED/' test_pwd_replace.txt
[[:blank:]]
等同于与空白或制表符匹配的[ \t]
。