linux 中 grep匹配 区分空格和制表符

 

001、

[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt                           ## 测试数据
aa bb cc
aa      jj      kk
aa mm   uy
aa      mm      ww
[root@pc1 test]# grep "aa\t" a.txt                   ##\t在这里不能被识别, \被认为是转义字符仅匹配为t
[root@pc1 test]# grep "aa[[:space:]]" a.txt          ## [[:space:]] 匹配了空格和制表符
aa bb cc
aa      jj      kk
aa mm   uy
aa      mm      ww
[root@pc1 test]# grep "aa[[:blank:]]" a.txt          ## [[:blank]] 匹配了空格和制表符
aa bb cc
aa      jj      kk
aa mm   uy
aa      mm      ww

 

002、解决方法

a、

[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt              ## 测试数据
aa bb cc
aa      jj      kk
aa mm   uy
aa      mm      ww
[root@pc1 test]# grep $'aa\t' a.txt     ## 利用$符号展开制表符
aa      jj      kk
aa      mm      ww

 

b、

[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt                ## 测试数据
aa bb cc
aa      jj      kk
aa mm   uy
aa      mm      ww
[root@pc1 test]# grep -v "aa " a.txt      ## 利用 -v取反结合空格匹配
aa      jj      kk
aa      mm      ww

 

c、直接打出制表符

[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt                    ## 测试数据
aa bb cc
aa      jj      kk
aa mm   uy
aa      mm      ww
[root@pc1 test]# grep "aa       " a.txt       ## 直接匹配制表符
aa      jj      kk
aa      mm      ww

 。

 

posted @ 2024-03-27 10:57  小鲨鱼2018  阅读(229)  评论(0)    收藏  举报