--color 颜色显示
-n 显示行号
-A+2 数字 显示关键字所在行的下面2行
-B+2 数字 显示关键字所在行的上面2行
-C+2 数字 显示关键字所在行的上下2行
-i 忽略大小写
-o 只显示被模式匹配到的字符串
-c 显示关键字有几行
-v 取反,不包含关键字的行有多少
-r 针对目录 cg -r'iptables' /etc/*
正则表达式:
. //表示任意单个字符
* //匹配其前面的字符任意次
.* //任意长度的任意字符
? //匹配其前面的字符1次或0次
\{m,n\} //匹配其前面的字符至少m次,至多n次
字符集和:[:digit:]数字, [:lower:]小写字母, [:upper:]大写字母, [:punct:]标点符号, [:space:]空白字符,
[:alpha:]所有字母, [:alnum:]所有字母和数字
位置锚定:
^ //锚定行首,此字符后面的任意内容必须出现在行首
$ //锚定行尾,此字符前面的任意内容必须出现在行尾
\<或者\b //锚定词首,其后面的任意字符必须作为单词首部出现 例:grep "\<root" file.txt
\>或者\b //锚定词尾,其前面的任意字符必须作为单词尾部出现 例:grep "root\>" file.txt
分组:
\(\)
\(ab\)* 后向引用 例: grep '\(l..e\).*\1' file.txt 前面匹配到什么,后面就引用什么
\1 引用第一个左括号以及与之对应的右括号所包括的所有内容
\2
\3
alias cg='grep --color'
echo "alias xx='xx'" >>/etc/bashrc 定义全局生效
cg '[0-9]' 1.txt //匹配数字的
cg '[aN]' 1.txt//匹配a和N的
cg '[a-zA-Z]' 1.txt //匹配所有大小写字母的
cg '^[a-z]' 1.txt // 匹配以小写字母开头的
cg '^[0-9]' 1.txt// 匹配以数字开头的
cg '^$' 1.txt// 匹配空行
cg 'r.o' 1.txt //点 . 代表任意一个字符,包括特殊字符,空格
cg 'r*o' 1.txt// * 匹配*号前面的0个或多个字符
cg 'r.*o' 1.txt // 匹配任意个任意字符
cg 'r\?o' 1.txt// 匹配0个或1个?号前面的字符=cg -E 'r?o' 1.txt
扩展正则表达式:
grep -E==egrep
grep --color 'r\?o' 1.txt == egrep --color 'r?o' 1.txt
+ //匹配其前面的字符至少1次 例:egrep --color 'r+o' 1.txt //一个或多个+前面的字符
egrep --color 'root|nologin' 1.txt //匹配root或者nologin
grep --color 'root' 1.txt |grep --color 'nologin' //匹配root并且匹配nologin
egrep --color '(rr)+' 1.txt // (rr)表示一个整体 ,匹配2个的 倍数
grep -E --color '(rr){1,3}' 1.txt// 匹配1和3的倍数个
fgrep:不支持正则表达式
转载于:https://blog.51cto.com/xiongrc/1787500