grep global search regular expression(RE) and print out the line, 全面搜索正则表达式并把行打印
grep家族:grep,egrep,fgrep
1.option选项
-i --ignore忽略大小写
-o 只显示字符串
-v 反向查找
-A 2 正则表达式匹配项之后的2行
-B 2 正则表达式匹配项之前的2行
2.模式(pattern;由文本字符串和正则表达式的元字符组合而成的匹配条件)
2.1.正则表达式
2.1.1元字符
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围之外的任意单个字符。^脱字符,[]之中表示取反,之外表示行首
* 匹配前面字符,匹配任意次
.* 任意长度的任意字符
\{M,N\} 匹配M-N次。比如1次:\{1\}
^ 行首锚定
$ 行尾锚定
实例:
查找空白行:grep "^$" /etc/passwd
行首为root:grep "\<root" /etc/passwd
严格过滤root:grep "\<root\>" /etc/passwd
过滤root:grep "root" /etc/passwd //会出现xxxxrootxxx等词
分组
\(\) 将内容分组,作为后向引用
echo "10011010101101" |grep "[10]"
echo "10011010101101" |grep "\(10\)"