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的字符