【发布时间】:2021-11-24 15:23:24
【问题描述】:
我有字符串:
lopy,lopy1,sym,lopy,lopy1,sym"
我希望这条线是:
lopy,lopy1,sym,lady,lady1,sym
这意味着字符串 sym 之后的所有“lad”都应该被替换。于是我跑了:
echo "lopy,lopy1,sym,lopy,lopy1,sym" | sed -r 's/(.*sym.*?)lopy/\1lad/g'
我明白了:
lopy,lopy1,sym,lopy,lad1,sym
使用 Perl 并不是更好:
echo "lopy,lopy1,sym,lopy,lopy1,sym" | perl -pe 's/(.*sym.+?)lopy/${1}lad/g'
产量
lopy,lopy1,sym,lad,lopy1,sym
并不是所有的“lopy”都被替换了。我做错了什么?
【问题讨论】:
标签: regex perl sed regex-greedy regexp-replace