lable理解
类似编程语言中的goto,跳转到指定的地方执行
用法
: LABLE 定义一个lable; 例如 :a 定义了1个a标签
b LABLE 无条件跳转到指定LABEL,如果LABEL省略的话则进入下一行处理
t LABLE 只有s///
执行成功才会跳转到LABEL定义的地方,如果LABLE省略则(除匹配到行外)执行最后一条命令
示例
测试文本
1 | root@jpvps /tmp/test #cat test |
示例: 123开头的行,行尾加' True'; 其它行加 ' False'
1 | root@jpvps /tmp/test #sed '/^123/s/$/ True/; t; s/$/ False/' test |
示例: b后的LABEL省略,处理下一行
1 | root@jpvps /tmp/test #sed '/^123/s/$/ True/; b; :x; s/$/ What/' test |
示例: bx, 跳转到 :x定义的地方, 数字1替换没有执行
1 | root@jpvps /tmp/test #sed '/^123/s/$/ True/; bx; s/1/11/; :x; s/$/ What/' test |
示例: tx前面执行成功后跳转到:x定义的地方,所以123所在行没有执行数字1替换操作
1 | root@jpvps /tmp/test #sed '/^123/s/$/ True/; tx; s/1/11/; :x; s/$/ What/' test |