2019-03-12笔记—shell脚本编程三(grep)

grep 命令参数(对行数据的操作)

主要参数含义
- c只输出匹配行的计数
- i不区分大小写
- n显示匹配行及行号
- v取反
- r遍历所有子目录
- A后面跟数字,过滤出符合要求的行以及下面n行
- B同上,过滤出符合要求的行以及上面n行
- C同上,同时过滤出符合要求的行以及上下各n行
- q不显示任何信息,配合$?可以用作判断
元字符作 用
*前一个字符匹配 0 次或任意多次/与命令行中的*有所区别
.匹配除换行符外的任意一个字符
^匹配行首。例如,^hello 会匹配以 hello 开头的行
$匹配行尾。例如,hello& 会匹配以 hello 结尾的行
[]匹配方括号中任意一个字符,而且只匹配一个字符。例如.[abcedf]匹配任意一个字母, [0-9] 匹配任意一位数字,[a-z][0-9] 匹配由小写字母和一位数字构成的两位字符
[^]匹配除中括号中的字符以外的任意一个字符。例如,[^0-9] 匹配任意一位非数字字符,[^a-z] 匹配任意一位非小写字母,注意^在括号内表示取反,在括号外表示行首
\转义符,用于取消特殊符号的含义
{n}表示其前面的字符恰好出现 n 次。例如,[0-9]{4} 匹配4位数字,[1][3-8][0-9]{9} 匹配手机号码
(n,}表示其前面的字符出现不少于 n 次。例如,[0-9]{2,} 匹配两位及以上的数字
{n,m}表示其前面的字符至少出现 n 次,最多出现 m 次。例如,[a-z]{6,8} 匹配 6〜8 位的小写字母

扩展正则表达式

扩展元字符作 用
+前一个字符匹配 1次或任意多次。如“go+gle”会匹配“gogle” “google”或“gooogle”。当然,如果“o”有更多个,则也能匹配
?前一个字符匹配 0 次或 1 次。如 “colou?r” 可以匹配 “colour” 或 “color”
|匹配两个或多个分支选择。如“was
()匹配其整体为一个字符,即模式单元。可以理解为由多个单个字符组成的大字符。如“(dog)+”会匹配“dog” “dogdog” “dogdogdog”等,因为被()包含的字符会被当成一个整体。但 “hello(world
 grep 'o\{2\}' /etc/passwd 等同于 egrep 'o{2}' /etc/passwd  #过滤两个o的行
 egrep 'o+' /etc/passwd #过滤一个0以上的行
 egrep 'oo?' /etc/passwd    #过滤一个o以上的行
 egrep 'root|nologin' /etc/passwd   #过滤有root或者nologin的行
 egrep '(oo){2}' /etc/passwd    #过滤有两个oo的行,即过滤“oooo”的行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值