【发布时间】:2021-01-25 00:38:10
【问题描述】:
如何使用sed或perl对多个输入字符串进行替换,其中一个字符串是另一个字符串的子字符串。
例子:
输入:a[b][c]
预期输出:a.*b.*c.*
我尝试关注,但 b 和 c 之间的 ][ 搞砸了结果。
echo "a[b][c]" |sed -r 's/[\[\]]{1}|\[|\]/.*/g'
a.*b.*.*c.*
echo "a[b][c]" |sed -r 's/[\[\]]|\[|\]/.*/g'
a.*b.*.*c.*
我希望有人可以提供帮助,谢谢。更喜欢 perl 解决方案,因为我必须将其放入其余的非共享代码中。
【问题讨论】:
-
echo a[b][c] | perl -pe "s/([\[\]]+)/.*/g"产生a.*b.*c.* -
这也是可能的:
echo 'a[b][c]' | perl -pe 's/[][]+/.*/g'