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