Linux I
第1章 通配符VS正则 1
1.1 找出oldboy.Txt中以mn开头的 1
1.2 找出oldboy.txt中以m或n开头并且以m或n结尾的行 1
1.3 排除大小写 排除数字 2
第2章 扩展正则 2
课前回顾:
特殊符号:引号 重定向 其他符号 位置 判断
第1章 通配符VS正则
通配符:找出文件名 大部分命令可以使用
正则:精确的过滤 给三剑客使用
正则表达式(regular Expression RE)
基础正则 (BRE Rasic Reg ular Expression)
^ 以..开头
$ 以。。。结尾
^$空行
.任意一个字符
前一个字符连续出现0个或0个以上
.所有
[] 相当于是一个符号(每次匹配1个字符)找出包含a或b 或c 例:grep ‘[^abc]’ oldboy.txt
1.1 找出oldboy.Txt中以mn开头的
1.2 找出oldboy.txt中以m或n开头并且以m或n结尾的行
[^]除了a或b或c其余都有
1.3 排除大小写 排除数字
a-Z 是专门给grep用的
第2章 扩展正则
- 前一个字符连续出现1次或1次以上 利用egrep匹配
Egrep 过滤掉的不显示
取出连续出现的小写字母 先取出小写字母 再加+号 会依次输出
| 表示或者 应用时必须加引号
() 表示整体
()反向引用/后向引用
思路:把你想要的内容保护起来
Sed 在‘s###g’后两个井号之间使用 \数字 引用
前面保护后面使用
{} 0{n ,m} 前一个字符至少出现n次,最多出现m次
? 前一个符号连续出现0次或1次 (前一个字符有或没有)
- 一般与[]匹配 某一行的某一部分
1.定位 取出某一行
2.sed/awk 取出想要的内容
取出网卡的IP地址
IP a s eth0
Ip address show eth0
方法1
[[email protected] /oldboy]# ip a s eth0 |awk ‘NR==3‘|awk -F"[ /]+" ‘{print $3}‘
10.0.0.200
取出ifconfig eth0 ip地址和子网掩码
方法1
[[email protected] /oldboy]# ifconfig eth0 |awk ‘NR==2‘
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[[email protected] /oldboy]# ifconfig eth0 |awk ‘NR==2‘ |awk -F"[ :]+" ‘{print $4,$NF}‘
10.0.0.200 255.255.255.0
方法2
[[email protected] /oldboy]# ifconfig eth0 |awk ‘NR==2‘
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
[[email protected] /oldboy]# ifconfig eth0 |awk ‘NR==2‘ |awk -F"addr:|Bcast:" ‘{print $2}‘
10.0.0.200
坑漏补:
正则表达式-坑1-grep ‘0‘ 会把文件内容都显示出来
#0 0次 没有 grep ‘‘ 会把文件内容都显示出来
0次以上 0 00000000000
正则表达式-坑2- [oldboy] 会把与oldboy 相关的挨个显示出来 加-o会单个显示内容
正则表达式-坑3- [^#^$] [^$] [^#$]
[]中 $ . 没有特殊含义
原文地址:http://blog.51cto.com/13860447/2153235