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

。

浙公网安备 33010602011771号