*:任意长度的任意字符
?:任意单个字符
[ ]:明确指明匹配范围内的单个字符
- [abc]:abc中的任意一个
- 注:要匹配通配符本身,需要使用%转义
例如:显示/var目录下,以l开头,以小写字母结尾,且中间至少出现一位数字的文件或目录
grep:基本正则表达式
egrep:扩展正则表达式
作用:文本搜索,根据用户指定的内容,对目标文件进行逐行匹配检查,打印匹配到的行
- 内容(模式):由正则表达式字符和文本符所编写的过滤条件
- 正则表达式:由一类特殊字符所编写的模式,有些字符不表示字符本身的含义,而表示控制或通配
- 元字符:表示特殊含义的字符
grep的使用方法:
- 格式:grep [选项] 模式 目录或文件
- --color=auth:对匹配到的内容加颜色显示
- -m #:匹配#次后停止
- -n:显示匹配的行行数
- -c:统计匹配到的行的行号
- -v:显示不能匹配到的行
- -i:匹配时忽略字符大小写
- -o:仅显示匹配到的字符
- -q:静默模式
- -A#:显示匹配到的行和后#行
- -B#:显示匹配到的行和前#行
- -C#:显示匹配到的行和前后各#行
- -w:匹配整个单词
- -E:使用扩展正则表达式
- -F:使用fgrep
- -f file:根据模式文件中的内容去匹配
.:任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围之外的任意单个字符
:匹配前面的字符任意次数
.:匹配任意长度的任意字符
\?:匹配前面的字符0次或1次,即前面的字符可有可无
\+:匹配前面的字符至少出现一次
\{m\}:匹配前面的字符m次
\{m,n\}:匹配前面的字符m到n次
\{m,\}:匹配前面的字符至少出现m次
\{,m\}:匹配前面的字符至多出现m次
^:匹配的字符出现在行首
$:匹配的字符出现在行尾
^pattern$:用于整行匹配
^$:空行
^[[:space:]]$:空白行
\<或\b:词首锚定,用于单词模式左侧
\>或\b:词尾锚定,用于单词模式的右侧
\<pattern\>:匹配整个单词
\(\):把括号中的内容分组
\(xy\)*ab:匹配ab前面的xy出现任意次数
\1:str1+(str2)*
\2:str2
\|:
a\|b:a或者b
C\|cat:C或者cat
\(C\|c\)at:Cat或者cat
选项与基本正则表达式相同
egrp的元字符:
- 字符匹配:同grep
- 次数匹配:同grep,但是不需要转义
- 位置锚定:同grep
- 分组:小括号不需要转义
- 后向引用
- 或者:| 不需要转义
grep -i ‘^s.‘ /proc/meminfo
grep ‘[Ss].‘ /proc/meminfo
grep -v ‘.*bash$‘ /etc/passwd
grep -E "^[[:space:]]+[^[:space:]]" /etc/grub2.cfg
原文:https://blog.51cto.com/13408885/2395329