grep
用途:根据模式搜索文本,将符合的文本所在行输出;
用法:
grep [options] PATTERN [FILE...]
PATTERN:模式,即匹配条件,包含文本字符及正则表达式
[options]
-i:-ignore-case,忽略大小写;
--color:将匹配字符使用颜色高亮显示;
-v:反向查找,显示不匹配模式的行;
-o:只显示匹配的字符串;
grep -A 2 'processor' /proc/cpuinfo
grep -B 2 'processor' /proc/cpuinfo
[root@server1 ~]# grep -C 2 'cpu family' /proc/cpuinfo
processor: 0
vendor_id: GenuineIntel
cpu family: 6
model: 60
model name: Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz
通配符:
*:任意长度的任意字符;
?:任意单个字符
[]:匹配指定范围内的任意单个字符;
[^]:匹配指定范围外的任意单个字符;
正则表达式(Regular Expression)
其中包含一些元字符,元字符不表示字符本身的含义,而是表示此字符通配的含义。
默认情况下,正则表达式工作在贪婪模式下,即匹配最大长度。
.:任意单个字符;
*:匹配其前面的字符任意次;
.*:任意长度的任意字符;
?:匹配其前面的字符0次或1次;
[]:匹配指定范围内的任意单个字符;
[^]:匹配指定范围外的任意单个字符;
[:digit:]:数字;
[:lower:]:小写字母;
[:upper:]:大写字母;
[:punct:]:标点符号;
[:space:]:空白字符;
[:alpha:]:所有字母;
[:alnum:]:所有数字及字母;
定义次数
\{m,n\}:匹配其前面的字符,至少m次,至多n次;
\{1,\}:至少1次;
\{0,3\}:最多3次
定义位置:
^:此字符后面的任意内容必须出现在行首;
grep '^r..t' /etc/passwd
$:此字符前面的任意内容必须出现在行尾;
grep 'b..h$' /etc/passwd
grep '[[:digit:]]$' /etc/inittab #以数字结尾的行
^$:空白行
\<或\b:锚定其后面的任意字符必须作为单词首部出现;
\>或\b:锚定其前面的任意字符必须作为单词尾部出现;
分组
\(ab\)*:ab为一组,匹配其出现0次或1次
扩展正则表达式:
扩展正则表达式中不需要使用逃逸字符
字符匹配
.:任意单个字符;
[]:匹配指定范围内的任意单个字符;
[^]:匹配指定范围外的任意单个字符;
次数匹配
*:其前字符任意次
?:其前字符0次或1 次
+:其前字符至少1次
{m,n}:至少m次,至多n次。
位置匹配
^:此字符后面的任意内容必须出现在行首;
grep '^r..t' /etc/passwd
$:此字符前面的任意内容必须出现在行尾;
grep 'b..h$' /etc/passwd
grep '[[:digit:]]$' /etc/inittab #以数字结尾的行
^$:空白行
\<或\b:锚定其后面的任意字符必须作为单词首部出现;
\>或\b:锚定其前面的任意字符必须作为单词尾部出现;
转载于:https://blog.51cto.com/tanbofan/1367870