反向引用:先保护(小括号取出匹配的部分)、再使用

  • 将123456修改为12<34>56
echo 123456 | sed -r 's#(34)#</1>#g'

Linux三剑客sed之反向引用_sed

  • 将oldboy_lidao修改为lidao_oldboy
echo oldboy_lidao | sed -r 's@^(.*)_(.*)$@\2_\1@g'
echo oldboy_lidao | sed -r 's@^([a-z]+)_([a-z]+)$@\2_\1@g'
echo oldboy_lidao | sed -r 's@^(\w+)_(\w+)$@\2_\1@g' # \w表示[a-zA-Z0-9_],连续的数字 字母 下划线

Linux三剑客sed之反向引用_运维_02

  • 取出网卡ip地址
ip a s eth0 | sed -n '3p' | sed -r 's#^(.*t )(.*)(/.*)$#\1#g'
ip a s eth0 | sed -nr '3s#^(.*t )(.*)(/.*)$#\1#gp'

Linux三剑客sed之反向引用_服务器_03


Linux三剑客sed之反向引用_服务器_04

​网址​

  • 取出权限644

Linux三剑客sed之反向引用_ip地址_05

stat /etc/hosts | sed -n 4p | sed -r 's#^.*\(0(.*)/-.*$#\1#g'

Linux三剑客sed之反向引用_linux_06