shell正则表达式

正则表达式:
正则表达式就是一套处理字符串的规则和方法,以行为单位对字符串进行处理,通过特殊的符号的辅助,我们可以快速的过滤,替换某些特定的字符串。
linux里正则表达式。主要是awk,sed,grep(egrep)的正则表达式。

正则表达式实际就是一些特殊字符,赋予了他特定的含义。
1)^word 搜索以word开头的行。
grep “^word” yangfan.log ####过滤以word开头的内容

2)word$ 搜索以word结尾的。
grep “^word” yangfan.log

grep -i “^M” yangfan.log ######(-i)不区分大小写 过滤以M开头的字符

3). 代表且只能代表任意一个字符
grep “bl.g” yangfan.log
grep -n “.” yangfan.log 显示行号可以 . 号表示任意一个字符,-n 过
滤出的每一行加行号。

4)\ 转义符号,让有着特殊身份意义的字符,脱掉马甲,还原原形。
grep “.” yangfan.log 过滤包含点的字符串

5)* 例o* 重复0个或多个前面的一个字符。
grep “490.*448” yangfan.log

6).* 匹配所有字符
^.* 以任意多个字符开头

7)[] 字符集合的重复特殊字符的符号
grep “b[lo]og” yangfan.log ######组合blog或者是boog

8)[^word] 匹配不包含^后的任意字符的内容。
grep “[^qq]” yangfan.log

9)a{n,m} 重复n到m次,前一个重复的字符。 如果用egrep可以去掉斜线。
grep “490{2,10}448” yangfan.log
grep “490{,5}448” yangfan.log
{n,} 重复最少n次,前一个重复的字符。
{n} 重复n次,前一个重复的字符。
10)^$ 空白行

扩展的正则表达式:ERE
1)+ 表示一个或一个以上前面的字符
egrep “490+448” yangfan.log
grep -E “490+448” yangfan.log

2)? 重复0个或一个0前面的字符。
grep -E “490?448” yangfan.log

3) | 用或的方式查找多个符合的字符串
grep -E “3306|1521” /etc/services

4) () 找出“用户组”字符串
grep -E “b(lo|oo)g” yangfan.log

linux取出ip的几种方式
(1)cut方式:ifconfig eth1 | grep “inet addr” | cut -d “:” -f2 | cut -d ” ” -f1 #####取ip地址

(2)awk方式:ifconfig eth1 | grep “inet addr” | awk -F “:” ‘{print $2}’ |awk ‘{print $1}’

(3)多分隔符取ip地址(冒号和空格的集合):ifconfig eth1 | grep “inet addr” | awk -F “[: ]+” ‘{print $4}’

取行的三种方式
(1)sed方式过滤行:
ifconfig eth1 | sed -n ‘2p’ ############sed取第二行
ifconfig eth1 | sed -n ‘2p’ | awk -F “[: ]+” ‘{print $4}’
(2) awk取行方式:
ifconfig eth1 | awk -F “[: ]+” ‘NR==2 {print $4}’ ######以NR==2的方式取第二行
(3)grep取行方式:
ifconfig eth1 | grep “inet addr” | awk -F “:” ‘{print $2}’ | awk ‘{print $1}’

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值