学习目标
grep的用法
为什么要学习正则表示?
学习更多的元字符
元字符的灵活应用
1、 grep的用法
ls | grep “查找的内容” grep “查找的类容” | 某个文件;
grep –-version 查看grep的版本号;
cat hello.txt | grep “a” 查找出a;
grep -v “a” test.txt 除了a,其他都查找出来;
grep -c “a” test.txt 查看a有多少行;
grep - v -c “a” test.txt 查看除a以外的有多少行;
grep --color “a” test.txt 查看所有a所在的内容;并且a以红色显示!
grep -n “a” test.txt 查看所有a所在的内容;并且显示行号!
grep -n –A 2 –-color “a” test.txt 以颜色显示包含a内容的行,并且显示包括a内容的行的下两行;
grep -n –B 2 –-color “a” test.txt 以颜色显示包含a内容的行,并且显示包括a内容的行的上两行;
grep -n –C 2 –-color “a” test.txt 以颜色显示包含a内容的行,并且显示包括a内容的行的上下两行;
2、 为什么要学习Regular Expression(正则表达式)
(1) 模糊、快速匹配数据串
(2) 为学习grep、awk 、 sed等文本过滤命令作铺垫
(3) 编写高级bash脚本的需要
3、 正则有哪些元字符
[] \ ^ $ . | ? * + ( )
4、 基本元字符集及其含义
举例:
(1)^ 匹配行首
ls | grep ‘^[0-3]’ 查询出0~3开头的所有文件;
ls | grep ‘^[^0-3]’ 查询出非0~3开头的所有文件;
(2)$ 匹配行尾
cat test.txt | grep “^[0-3]e$” 匹配0-3开头,e结尾的内容;
(3) * 一个单字符后紧跟*,匹配0个或多个此字符;
(4)? 匹配0次或1次;
cat test.txt | grep “^[0-9]?*”
(5) . 只匹配任意单字符
cat test.txt | grep “5.e”
(6)pattern \{n\}
两者的区别:第一个匹配:不一定匹配开头的两个数字出现;
第二个匹配:匹配开头的两个数字出现;
(7)pattern \{n,\} 最少出现n次
(8)pattern \{n,m\} 出现次数在n~m之间;