Linux 中sed选项 \b 和 \B的用法

 

\b表示限位符,\B表示与\b相反的匹配

01、\b 

[root@PC1 test2]# ls
a.txt
[root@PC1 test2]# cat a.txt                        ## 测试数据
ab xyky 3d
ma abki ff
ec dfab ff
fg ab   kk
ad ff   ab
ad fabe jy
[root@PC1 test2]# sed 's/\bab/\U&/g' a.txt        ## \b表示限位符,匹配开头、结尾或者空格;该例中表示匹配ab的左侧必须是开头或者空格
AB xyky 3d
ma ABki ff
ec dfab ff
fg AB   kk
ad ff   AB
ad fabe jy

[root@PC1 test2]# cat a.txt                         ## 测试数据
ab xyky 3d
ma abki ff
ec dfab ff
fg ab kk
ad ff ab
ad fabe jy
[root@PC1 test2]# sed 's/ab\b/\U&/g' a.txt           ## 该例中表示ab的右侧必须是空格或者结尾符
AB xyky 3d
ma abki ff
ec dfAB ff
fg AB kk
ad ff AB
ad fabe jy

 

 

02、\B

[root@PC1 test2]# ls
a.txt
[root@PC1 test2]# cat a.txt                        ## 测试文本
ab xyky 3d
ma abki ff
ec dfab ff
fg ab   kk
ad ff   ab
ad fabe jy
[root@PC1 test2]# sed 's/\bab/\U&/g' a.txt        ## \b选项,限位符
AB xyky 3d
ma ABki ff
ec dfab ff
fg AB   kk
ad ff   AB
ad fabe jy
[root@PC1 test2]# cat a.txt
ab xyky 3d
ma abki ff
ec dfab ff
fg ab   kk
ad ff   ab
ad fabe jy
[root@PC1 test2]# sed 's/\Bab/\U&/g' a.txt       ## \B匹配的范围与\b相反;及\b没有匹配到的,\B可以匹配到
ab xyky 3d
ma abki ff
ec dfAB ff
fg ab   kk
ad ff   ab
ad fABe jy

 。

 

\b表示匹配文本中单词的开头或结尾字符,同时匹配字符组成的单词,\bxx表示匹配xx字符开头单词的xx位置,xx\b表示匹配xx字符结尾单词的xx位置,\bxx\b表示匹配单独以xx字符组成的单词 **3. \B表示匹配文本中非单词开头和结尾字符,\Bxx表示匹配xx字符结尾单词的xx位置,xx\B表示匹配xx字符开头单词的xx位置,\Bxx\B表示匹配xx字符在文本中非单词开头和结尾的xx位置 ** **4. \bxx\B表示匹配xx字符开头单词但不包括xx字符组成的单词,定位单词的xx位置 ** **5. \Bxx\b表示匹配xx字符结尾单词但不包括xx字符组成的单词,定位单词的xx位置 ** 

 

参考:

01、http://www.noobyard.com/article/p-pfmiiypu-ny.html

 

posted @ 2024-02-17 20:24  小鲨鱼2018  阅读(147)  评论(0编辑  收藏  举报