9.1正则--grep

正则

  • 正则就是一串有规律的字符串
  • 常用的工具grep,sed,awk
  • 掌握好正则对于编写shell脚本有很大帮助

grep/egrep工具的使用

grep命令格式: grep [-cinvABC] 'word' filename 常用选项如下

  • -c :表示打印符合要求的行数
  • -i :表示忽略大小写
  • -n:表示输出符合要求的行及其行号
  • -v:表示打印不符合要求的行
  • -r: 遍历所有子目录
  • -A:后边跟一个数字,例如-A2表示打印符合要求的行以及下面两行
  • -B:后边跟一个数字,例如-B2表示打印符合要求的行以及上面两行
  • -C:后边跟一个数字,例如-C2表示打印符合要求的行以及上下各两行
过滤所有包含数字行
	grep '[0-9]' filename
过滤所有不包含数字行
	grep -v '[0-9]' filename
过滤所有以#开头的行
	grep -v '^#' filename

^在方括号[]里面取非; 不在方括号[]里面表示以什么开头;上例以#开头;

	grep '^[^a-zA-Z]' filename   //表示非字母开头
	
	grep '^[^0-9]' filename    //表示非数字开头
过滤出任意一个字符和重复字符
	grep  'r.o' filename    //.表示任意一个字符

	grep  'r*o' filename    //*表示零个或多个*前面的字符
指定要过滤出的字符出现次数
  • 符号{}, 内部为数字,表示前面的字符要重复的次数.

  • 还可以表示范围, {n1,n2} 其中n1<n2; 表示重复n1到n2次前面的字符, n2为空时,表示大于等于n1次

      grep 'o\{2\}' filename 
    
      egrep 'o{2}' filename  // egrep 不需要加转义\
    
      grep -E 'o{2}' filename   //等同于egrep
    

使用()表示一个整体,和其他符号组合使用egrep '(oo){2}' filenam表oo出现2次的

过滤出一个或多个指定的字符
  • +表示匹配1个或多个 + 前面的字符.

      egrep 'o+' filename
    

使用grep需要\转义+

过滤出零个或一个指定的字符
  • ? 表示匹配0个或1个 ? 前面的字符.

      egrep 'o?' filename
    
过滤出字符串1或者字符串2
  • | 表示或者

    egrep 'aaa|ooo' filename

转载于:https://my.oschina.net/u/3851442/blog/3035233

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值