如何解决sedv4.2.1或awk解决正则表达式替换
https://regex101.com/r/t1Etzx/1/的正则表达式替换正常。 在bash上使用sed 4.2.1:
echo "text curl -u a12345:ypB7HuW9u5yB'_'https://mycompany.com/api/healthcheck"|sed -r 's/(a\d+|A\d+|scl[^:]+):([^\']+)(\'|_)/\1:xxxxx\3/g'
和
echo "text curl -u a12345:ypB7HuW9u5yB'_'https://mycompany.com/api/healthcheck"|sed -E 's/(a\d+|A\d+|scl[^:]+):([^\']+)(\'|_)/\1:xxxxx\3/g'
在给我
bash: syntax error near unexpected token `)'
awk中的解决方案也很受欢迎。
解决方法
如评论中所述,\d
不起作用,因此我将其替换为[0-9]
。
也将(\'|_)
替换为[\'_]
,因为那也不起作用。
至于bash: syntax error near unexpected token ')'
,请用双引号替换单引号,因为'\''
不起作用,因为单引号中的\
是文字。
这样看来行得通:
sed -E "s/(a[0-9]+|A[0-9]+|scl[^:]+):([^\'_]+)([\'_])/\1:xxxxx\3/g"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。