shell编程基础-正则表达式

正则表达式

匹配包含的文本字符串(正则是包含的关系,只要包含就匹配)

  • 基础正则表达式:通过grep加载
  • 扩展正则表达式:通过egrep或者grep -E

grep -v 取反

基础正则表达式

  • n* (星号):匹配包含前一个字符的n匹配0次或者任意多次(如果星号前面就一个字符那匹配0次就代表匹配全部,文本的全部)
  • .(点):匹配包含任意一个字符(换行符除外)
  • ^ :匹配首行
  • $:匹配末行
  • [ ](中括号):匹配包含中括号中的任意一个字符,范围用 1-9(一横)
  • [^ ] (中括号内+尖角号):取反,区别于中括号外+尖角号 ^ [ ]
  • \ :取消特殊字符的含义,变成普通字符
  • {n}:前面字符出现的n次
  • {n,}:前面字符出现大于等于n次
  • {n,m}:前面字符出现大于n次,小于m次

使用grep -E的时候最后三个\ 不要加反斜号{n,m}

扩展正则表达式

  • +:前一个符号匹配1次或者多次
  • ?:前一个符号匹配0次或者1次
  • | :或的关系
  • ():代表一个整体字符

练习题:

1、显示/proc/meminfo文件中以大写S和A开头的行

egrep "^(A|S)" /proc/meminfo

2、显示/etc/passwd文件中不以/bin/bash结尾的行

grep -v "/bin/bash$" /etc/passwd

3、显示/etc/passwd文件中s开头的4位用户

grep "^s...:" /etc/passwd

4、显示/etc/passwd文件中有空格的行(不区分大小写)

grep -i "[0-9a-z] [0-9a-z]" /etc/passwd

5、显示/etc/passwd文件中空白行

grep "^$" /etc/passwd

6、显示/etc/passwd文件中的两位数或三位数

egrep "[0-9]{2,3}" /etc/passwd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值