linux文本处理三剑客之grep

grep

grep:文本过滤器(在大段指定的文件中,按一定的模式 patten)进行过滤)grep 有三种形式:grep egrep fgrep(grep 家族)  
其实 grep 是一段话的缩写:Global search regular expression and print out the line(全面搜索研究正则表达式并显示出来)  
作用:grep 命令是一种强大的文本搜索工具,根据用户指定的“模式”对目标文本进行匹配检查,打印匹配到的行。  

模式(patten):由正则表达式或者字符及基本文本字符所编写的过滤条件

 grep -i "^root" file                    ###以root开头,i(ignore-case):忽略大小写
 grep -i "root$" file                    ###以root结尾
 grep "^$" file                          ###过滤出空行,cat -E file可以发现文件的结尾都有$
 grep  "root" -r /mnt/                   ###显示/mnt/下文件中有root的行
 grep -n "root" file                     ###显示行号
 grep -A 1 "root" file                   ###显示file中root的后一行,A(after)
 grep -B 1 "root" file                   ###显示file中root的前一行,B(before)

 grep "[abc]" file                       ###匹配里面任意一个字符
 grep "[^abc]" file                      ###匹配不包含^后面的一个字符的内容(非a,b,c)

 grep "\<abc" file                       ###abcd会被过滤出来(相当于^abc开头的字符)
 grep "abc\>" file                       ###aabc会被过滤出来(相当于abc$结尾的字符)
 grep "\<abc\>" file                     ###显示出包含abc的内容(abcd:这种就会过滤不出来)

 grep "n.m" file                         ###代表一个字符
 grep "n*m" file                         ###重复0个或多个前面的字符

 grep "\babc\b" file                     ###只要abc
 grep [[:alpha:]] file                   ###匹配单个字母
 grep [[:lower:]] file                   ###匹配单个小写字母
 grep [[:upper:]] file                   ###匹配单个大写字母
 grep [[:digit:]] file                   ###匹配单个数字
 grep [[:alnum:]] file                   ###匹配单个数字或字母
 grep [[:punct:]] file                   ###匹配单个符号
 grep [[:space:]] file                   ###匹配单个空格


grep 正则表示

grep -v #-v 表示取反
1,"*"的作用

*表示:前一个字符匹配0次或任意多次
grep "a*" file   # 表示匹配所有内容
grep "aa*" file  #表示匹配至少一个a


2,"."的作用
.表示:除换行符以外的任意一个字符
grep "a.*" file 	#表示以a开头的
grep "a..e" file	#表示以a开头e结尾的中间有两个字符
grep "a.*e" file	#表示以a开头e结尾的所有字符

3, "^" "$"的作用
"^n"表示:以n开头的
"n$"表示:以n结尾的

4,"[]"的作用
[]表示:匹配括号中任意一个字符
grep "a[bc]d" file	#表示匹配abd或者acd
grep "[0-9]" file	#表示匹配任意一个数字
grep "^[a-z]" file	#表示匹配以小写字母开头的

5,"[^]"的作用
[^]表示:匹配除括号内字符意外的任意字符
grep "^[^a-z]" file	#表示匹配不以小写字母开头的
grep "^[^a-zA-Z]" file	#表示匹配不以字母开头的

6, "\"的作用
\表示:将后面的字符按照普通字符处理
grep "\.$" file 	#表示以.结尾的行

7,"\{n\}"的作用
\{n\}表示:前面的字符恰好出现n次
grep "[0-9]\{3\}" file 	#表示包含连续3个数字的

8, "\{n,\}"的作用
\{n,\}表示:前面的字符至少出现n次
grep "^[0-9]\{3\}" file   #表示至少以3个数字开头的行

9,"\{n,m\}"的作用
\{n,m\}表示:前面的字符至少出现n次,最多出现m次
grep "ab\{1,3\}c" file	#表示以a开头c结尾中间最少有一个b最多有3个b的字符

猜你喜欢

转载自blog.csdn.net/u010489158/article/details/80778169