正则之grep

grep

Linux grep命令用于查找文件里符合条件的字符串。

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据。

语法

grep [参数][查找的字符串][file/directory]

参数

-c 行数
-i 不区分大小写
-n 显示行号
-v 取反
-r 遍历所有子目录
-A 后面跟数字,过滤出符合要求的行以及下面n行
-B 同上,过滤出符合要求的行以及上面n行
-C 同上,同时过滤出符合要求的行以及上下各n行

示例

不加参数

8772cf7f46396e9b4e4d78666bd786f2eae.jpg

-c取行数

71168ae1cc2da43929f46a56e301ccc94cb.jpg

-n显示行号

0f2e635f49af487092f5c1bbada23605a19.jpg

-i不区分大小写

34015ce91ea4dfe58932723ea4324a30c81.jpg

-v取反

2fd4a14331379ebb7f032527c99dcdb2ca7.jpg

-r遍历所有子目录和文件

777b6be0b99d152d545c89ee6d5d05e1172.jpg

-A2过滤出要求行下面的2行

724fc6168055113760e5968725927d14e27.jpg

-B2过滤出要求行上面的2行

fc412820fcf2431f369e961ee4655cd8ad9.jpg

-C2过滤出要求行上下2行

e1f20b5732f8e5a8c11dc1a5154a803a820.jpg

grep '[0-9]' passwd  过滤0~9数字的行(一个数字)

0d3332489ef717f7c040f2a29b34c24262b.jpg

grep -v '[0-9]'  /etc/inittab 带数字的行都不要

edc6e067139fab6576de91a284fd72f2b68.jpg

 grep -n '^#' /etc/inittab  过滤以#开头的行

2fcce10470c85173d3a2ef011ed63fbb03f.jpg

拷贝inittab文件被更改内容,如下:

ff0d2041e5b85c18bdbc5b83586e0c66e89.jpg

过滤非#号开头的行(‘^’,以什么开头)

101ae24c5b7189c4f632ee9395b2fa39b21.jpg

过滤出非数字的行或字符串 ([^]取非)

6275e91510dfd3b025f6586881648564917.jpg

以非数字开头的行

a83fab2c3fed8aa634c2a383599f4f57c6c.jpg

grep 'r.o' passwd   过滤r.o的行,中间的点可以代表任意一个字符

c460cfccfe6de2a6aa4743d2e7b7e113930.jpg

grep 'o*o passwd 过滤一个o或n个o的行

f3b41ab209d07fe64d5624e78949a7130ae.jpg

'.*' 匹配任意一个字符

e19f7fc435fa76951c3e92a7dd226c4091a.jpg

匹配出现2次o的行

abee28e2c09bc4d15f0ea65c4e4da50032c.jpg

匹配2~3个o的行

abb567913064511a8cde0253bc1efd923b6.jpg

egrep 可以脱义,或者grep -E

4ebd7d4b7792237ebc62eef5b5c86979a12.jpg

6a4d63ea5196de7f7ddcc25b4ce518b4c82.jpg

+号匹配前一个字符出现2次以上的行

6be0ab7d1c2a29514d63bb033de4a8382ce.jpg

?匹配前面一个字符出现0次或1次的行

004d8cddf2bf546a3dff9d2ae6f3e55c811.jpg

|匹配root或者nologin的行

e5a0ec4851e6e6f017ffc4ba5dd54bffb52.jpg

 

 

 

转载于:https://my.oschina.net/ccLlinux/blog/1839496

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值