grep 根据模式搜索文本,显示匹配行
-i 忽略大小写
--color=auto 匹配上的以颜色显示
-v 反向查找,显示没有被匹配上的行
-o 只显示被模式匹配到的字符串本身
正则表达式
元字符
. 任意单个字符
[] 指定范围内的任意单个字符
[^] 指定范围外的任意单个字符
在bash,*代表任意长度任意字符,?代表任意单个字符;在正则里, .*代表任意长度任意字符,.代表任意单个字符
次数匹配
\? 匹配前面字符次数1次或0次
* 匹配它前面的字符任意次
\{m,n\} 匹配前面字符至少m次,至多n次;\{1,\}至少1次;\{,3\}最多3次
位置锚定
^ 锚定行首,此字符后面匹配的任意字符必须在行首
$ 锚定行尾,此字符前面匹配的任意字符必须在行尾
^$ 空白行
统计空行
grep --color=auto "^$" test5 |wc -l
\<或\b 其后面的任意字符必须作为单词的首部出现
\>或\b 其前面的任意字符必须作为单词的尾部出现
\<root\> 或 \broot\b 单词root
扩展正则表达式
egrep或grep -E
元字符
.
[]
[^]
次数匹配
* 匹配其前面任意次
? 匹配其前面的字符一次或零次
+ 匹配其前面的字符至少一次
{m,n}
位置锚定
^
$
\<或\b
\>或\b
| 或者
支持过滤多个字段