SED:用同一行中的另一种模式替换找到的图案



我有这样的行:

"LExx 01236723 LE12"

我想找到LE12并用LE12替换LExxsed

是否可能

您可以尝试以下方法:

$ echo "LExx 01236723 LE12" | sed 's/LExx(.*LE(..)$)/LE21/'
LE12 01236723 LE12

说明

s            # substitute
/LExx        # find LExx
(.*         # save rest in arg1 (1)
LE(..)$    # find LE and save next 2 char in arg2 (2)
)           # end arg1
/            
LE21       # print LE + arg2 + arg1
/

假设两个搜索字符串都是 ststantants ,然后使用regexp extension b使用 gnu sed(在 bash下运行((:

sed '/LE12/s/bLExxb/LE12/' <<< "LExx 01236723 LE12"

输出:

LE12 01236723 LE12

相关内容

最新更新