grep
-i 忽略大小写
--color 加颜色
-v 显示没有被匹配到的行
-o 只显示被匹配到的字符串
grep -o root /etc/passwd | wc -l 查找有多少个root字符串
-E 使用扩展正则表达式 egrep=grep -E
-A # grep -A 2 '^core id' /proc/cpuinfo
-B # grep -B 2 '^core id' /proc/cpuinfo
-C # grep -C 2 '^core id' /proc/cpuinfo
正则表达式:Basic REGEXTP 基本
Extended REGEXTP 扩展
正则表达式
. 表示任意单个字符
* 表示匹配其前面的字符任意次
(贪婪模式)
ab, aab ,acb, adb, amnb
a*b
a.*b
.* 任意长度的任意字符
\? 匹配其前面的字符1次或者0次
\{m,n\} 匹配其前面的字符至少m次,至多n次
grep 'a\{1,3\}b' test.txt
ab
aab
grep 'a.\{1,3\}b' test.txt
位置锚定:
^ 锚定行首,锚定符之后的字符必须出现在行首
grep '^r..t' /etc/passwd
$ 锚定行尾,锚定符之前的字符必须出现在行尾
grep 'b..h$' /etc/passwd
^$ 空白行
grep '^$' /etc/inittab
\<或者\b 锚定词首,其后的任意字符必须作为单词首部出现
\>或者\b 锚定词尾,其前的任意字符必须作为单词尾部出现
\<root\>
分组:
\(\) 把内容分组
\(ab\)*
后向引用
\1 引用第一个左括号以及与之对应的右括号所包含的内容
grep '\(1..e\).*\1' test.txt
grep '\([0-9]\).*\1$' /etc/inittab 行里出现数字,已相同的数据结尾
扩展正则表达式: (和一般正则表达式不同是很多地方不用加\了)
-E 使用扩展正则表达式
字符匹配:
.
[]
[^]
次数匹配:
*:
?:
+: 匹配其前面的字符至少一次
?和+ 相当于*
{m,n}
分组:
()
或者
|
C|cat C或者cat
(C|c)at Cat或者cat
本文转自阿伦艾弗森 51CTO博客,原文链接:http://blog.51cto.com/perper/1946383,如需转载请自行联系原作者