linux-grep-egrep-正则表达式

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,如需转载请自行联系原作者


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值