2018-10-19

10月16日任务

9.1 正则介绍_grep上

9.2 grep中

9.3 grep下

正则介绍

9.1 _grep(上)

正则是一串有规律的字符串

掌握好正则对于编写shell脚本有很大帮助

各种编程语言中都有正则,原理是一样的

grep/egrep、sed、awk

grep [-cinvABC] 'word' filename

-c 查看行数 

-i 不区分大小写

-n 显示行号在最左边

-v 取反 显示除去目标行

-r 遍历文件下所有目录及文件

-A 后面跟数字,过滤出符合要求的行以及下面n行

-B 同上,过滤出符合要求的行以及上面的n行

-C 同上,同时过滤出符合要求的行以及上下面各n行


9.2 grep(中)9.3 grep(下)

grep/egrep示例

grep -n 'root' /etc/passwd

grep -nv 'nologin' /etc/passwd

grep '[0-9]' /etc/inittab

grep -v '[0-9]' /etc/inittab

grep -v '^#' /etc/sos.conf

grep -v '^#' /etc/sos.conf |grep -v '^$'

grep '^[^a-zA-Z]' test.txt

grep 'r.o' test.txt

grep 'oo*' test.txt

grep '.*' test.txt

grep 'o\{2}' /etc/passwd

egrep 'o{2}' /etc/passwd

egrep 'o+' /etc/passwd

egrep 'oo?' /etc/passwd

egrep 'root|nologin' /etc/passwd

egrep '(oo){2}' /etc/passwd

grep

'[0-9]' 只要有一个数字都显示该行

'[^0-9]' 只要含有非数字的字符都显示出该行

-v '[0-9]' 取反 显示没有数字的行

-v '[^0-9]' 显示不以数字开头的行

'^[^0-9]' 显示以一个非数字的字符开头的行

^在中括号中意思为取非

'r.o'  中的.为任意一字符

'o*o' *表示0到n次 *前的字符至少出现0次

'o\{2\}'  显示含有连续两个o的行

'o\{0,3\}' 显示含有连续1个到3个o的行

'o\+o' +表示1到n次 加号前的字符至少出现1次

'o?1o' 表示问号前字符出现的次数为0或1次

'root|nologin' |在单引号中表示或者

grep -E = egrep

egrep 'o{2}'  == grep 'o\{2\}' == grep -E 'o{2}'  

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容