linux 中 grep命令匹配空格和制表符

Posted 小鲨鱼2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 中 grep命令匹配空格和制表符相关的知识,希望对你有一定的参考价值。

 

001、匹配空格

[root@PC1 test4]# ls
a.txt
[root@PC1 test4]# cat a.txt        ## 测试数据
1_aa bb
2_ccdd
3_ee   ff
4_gg    hh      kk
[root@PC1 test4]# sed -n l a.txt   ## 显示出空格和制表符
1_aa bb$
2_ccdd$
3_ee   ff$
4_gg\\thh\\tkk$
[root@PC1 test4]# grep " " a.txt   ## 仅匹配空格
1_aa bb
3_ee   ff

 

002、匹配制表符

[root@PC1 test4]# ls
a.txt
[root@PC1 test4]# cat a.txt
1_aa bb
2_ccdd
3_ee   ff
4_gg    hh      kk
[root@PC1 test4]# sed -n l a.txt
1_aa bb$
2_ccdd$
3_ee   ff$
4_gg\\thh\\tkk$
[root@PC1 test4]# grep $\'\\t\' a.txt       ## 匹配制表符
4_gg    hh      kk

 

003、同时匹配空格和制表符

[root@PC1 test4]# ls
a.txt
[root@PC1 test4]# cat a.txt           ## 测试数据
1_aa bb
2_ccdd
3_ee   ff
4_gg    hh      kk
[root@PC1 test4]# sed -n l a.txt
1_aa bb$
2_ccdd$
3_ee   ff$
4_gg\\thh\\tkk$
[root@PC1 test4]# grep "\\s" a.txt
1_aa bb
3_ee   ff
4_gg    hh      kk
[root@PC1 test4]# grep "[[:blank:]]" a.txt
1_aa bb
3_ee   ff
4_gg    hh      kk
[root@PC1 test4]# grep "[[:space:]]" a.txt
1_aa bb
3_ee   ff
4_gg    hh      kk

 

Linux 下 grep 命令常用方法简介

1、从单个文件中搜索指定的字符串:

$ grep "literal-string" filename

该命令会输出字符串在文件中所在行的内容,如果字符串没有空格,则可以不加双引号。filename 可以是多个文件,每个文件用空格隔开。

 -i 参数可以忽略大小写。 加 -u 参数搜索一个单词而不是搜索含该单词的字符串

2、显示匹配行附近的多行:

  • -A 显示匹配行之后的n行

$ grep -A n "string" filename

  • -B 显示匹配行之前的n行

$ grep -B n "string" filename

  • -C 显示匹配行前后的n行

$ grep -C n "string" filename

3、递归搜索:-r

$ grep -r "this" *

搜索当前目录以及子目录下含“this”的全部文件。

4、不匹配搜索:-v

$ grep -v "go" demo_text

显示不含搜索字符串“go”的行。

5、统计匹配的行数:-c

$ grep -c "go" filename

统计文件中含“go”字符串的行数。

6、只显示含字符串的文件的文件名:-l

$ grep -l "this" filename

显示含“this”字符串的文件的文件名。

7、输出时显示行号:

grep -n "this" filename

显示含文件中含“this”字符串的行的行号。

以上是关于linux 中 grep命令匹配空格和制表符的主要内容,如果未能解决你的问题,请参考以下文章

Linux 操作命令 grep

如何让linux中的空格和制表符原形毕露

[:space:]和[:blank:]之间有什么区别?

grep 单词并检索匹配项和以下以制表符开头的行

Linux安全基础:grep命令的使用

linux基础命令 grep