【发布时间】:2021-07-15 08:14:00
【问题描述】:
感谢任何帮助以找出以下方案的解决方案。
输入:
:50Kfoobar:53B:53B:53Bbaz:53B:53B;:50Kvoocar:53B:53B:53Bbaz:53B:53B
输出:
:50KCREDIT:53B:53B:53Bbaz:53B:53B;:50KCREDIT:53B:53B:53Bbaz:53B:53B
尝试使用以下命令
sed 's/:50K.*:53B/:50KCREDIT:53B/g' <<<':50Kfoobar:53B:53B:53Bbaz:53B:53B;:50Kvoocar:53B:53B:53Bbaz:53B:53B'
producing below result
:50KCREDIT:53B
【问题讨论】:
-
使用:
sed 's/:50K[^:]*:53B/:50KCREDIT:53B/' -
@anubhava 建议的解释:您的
.*是 greedy,并且将匹配 everything 直到最后的 538。[^:]*:使得匹配在每个冒号处停止。 -
感谢 Anubhava 和 tink 的时间和帮助。
-
仅供参考!!附上的骗子可以作为参考,但看起来不像是一个确切的骗子。