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

 

posted @ 2022-06-03 11:27  小鲨鱼2018  阅读(59)  评论(0编辑  收藏  举报