sed (v4.2.1) 或 awk 解决正则表达式替换问题
sed (v4.2.1) or awk to solve a regex substition
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[^:]+):([^\']+)(\'|_)/:xxxxx/g'
和
echo "text curl -u a12345:ypB7HuW9u5yB'_'https://mycompany.com/api/healthcheck"|sed -E 's/(a\d+|A\d+|scl[^:]+):([^\']+)(\'|_)/:xxxxx/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[^:]+):([^\'_]+)([\'_])/:xxxxx/g"
https://regex101.com/r/t1Etzx/1/ 正在执行正则表达式替换。 在 bash:
上使用 sed 4.2.1echo "text curl -u a12345:ypB7HuW9u5yB'_'https://mycompany.com/api/healthcheck"|sed -r 's/(a\d+|A\d+|scl[^:]+):([^\']+)(\'|_)/:xxxxx/g'
和
echo "text curl -u a12345:ypB7HuW9u5yB'_'https://mycompany.com/api/healthcheck"|sed -E 's/(a\d+|A\d+|scl[^:]+):([^\']+)(\'|_)/:xxxxx/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[^:]+):([^\'_]+)([\'_])/:xxxxx/g"