linux中精确匹配如何避免标点符号的影响
001、问题
[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试数据 73 dar 87 32 dar.3 fdg fd dar-5 dg df dar~df gfdg df ee.dar 34 er fd-dar 767 df df~dar.fd 76 der dar kdf df afdarikh 76 dar kkk ff dfd fdf dar [root@PC1 test]# grep -w "dar" a.txt ## -w并不能实现真正的精确匹配 73 dar 87 32 dar.3 fdg fd dar-5 dg df dar~df gfdg df ee.dar 34 er fd-dar 767 df df~dar.fd 76 der dar kdf dar kkk ff dfd fdf dar [root@PC1 test]# grep "\<dar\>" a.txt ## 也不能实现真正的精确匹配 73 dar 87 32 dar.3 fdg fd dar-5 dg df dar~df gfdg df ee.dar 34 er fd-dar 767 df df~dar.fd 76 der dar kdf dar kkk ff dfd fdf dar
002、解决方法
[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt 73 dar 87 32 dar.3 fdg fd dar-5 dg df dar~df gfdg df ee.dar 34 er fd-dar 767 df df~dar.fd 76 der dar kdf df afdarikh 76 dar kkk ff dfd fdf dar [root@PC1 test]# grep "\sdar\s" a.txt ## 关键字加空白符 73 dar 87 der dar kdf [root@PC1 test]# grep -E "\sdar\s|^dar\s" a.txt ## 利用grep扩展,增加开头匹配项 73 dar 87 der dar kdf dar kkk ff [root@PC1 test]# grep -E "\sdar\s|^dar\s|\sdar$" a.txt ## 增加结尾匹配项 73 dar 87 der dar kdf dar kkk ff dfd fdf dar