正则介绍_grep

正则介绍_grep

正则就是一串有规律的字符串

各种编程语言中都有正则,原理是一样的。

grep/egrep   sed   awk    是shell脚本“三剑客”

grep (-c  -i  -n   -v     -r   -A   -B   -C )

-c  行数   -n 行号

-i 不区分大小写

-v 取返

-r  把子目录和孙目录下面所有的文件遍历一遍

如果不加-r  

-A后边跟数字,过滤出符合要求的行以及下面n行

-B后边跟数字,过滤出符合要求的行以及上面n行

-c后边跟数字,过滤出符合要求的行以及上下各n行

grep/egrep示例

[root@serverlooker-01 grep]# grep '[0-9]' passwd

[0-9] 表示方括号里面的任意一个字符

 

[root@serverlooker-01 grep]# grep -v '[0-9]' passwd
只要带数字的都不要

(:set nu 加上行号,方便查看)

---

以#开头的行
[root@serverlooker-01 grep]# grep -n '^#' /etc/inittab

把文件拷贝到当前目录下 [root@serverlooker-01 grep]# cp /etc/inittab ./

改动一下当前目录下的inittab (不要改etc下的,可能会导致系统启动不了)

(把15行过滤出来了)

以后看能会看很多跟服务相关的配置文件,配置文件里会有很多以#开头的行,是为了解释说明,所以看起来可能会很乱,所以可以用这种方法过滤。

--

放到[ ] 里面,是方括号里面字符的反义,和放到外面是不一样的。表示取 非

[root@serverlooker-01 grep]# grep '[^0-9]' inittab

以非数字开头的行,列出来

[root@serverlooker-01 grep]# grep '^[^0-9]' inittab

以数字开头的行:

---

. 表示任意的一个字符。

* 表示 :*左边的字符重复0-n次

.* 表示任意一个任意字符

[root@serverlooker-01 grep]# grep '.*' passwd

---

[root@serverlooker-01 grep]# grep '{2}' passwd

这样写不表示任何意义,就表示一个花括号。在正则当中{ }用来表示一个范围,真正的写法:

[root@serverlooker-01 grep]# grep 'o{2}' passwd  表示o出现2次,但直接这样写不识别,需要做一个脱义:[root@serverlooker-01 grep]# grep 'o\{2\}' passwd

还可以表示一个范围:   ({}表示前面这个字符的重复范围)

如果不想写\,可以用egrep 或者grep -E

表示一个整体:

+ 表示+前面这个字符的1次或者多次,(*是0次或多次)

[root@serverlooker-01 grep]# grep 'o\+o' passwd

 

?表示 ?前面字符的0次或1次重复

| 表示或者,可以写多个

---

如下这些特别重要:

.

*

.*

+

?

^

$

---

OK.

转载于:https://my.oschina.net/u/3721459/blog/1576345

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值