第十一课预习笔记

 

第十一课预习内容(8.16)
9.1 正则介绍_grep上
9.2 grep中
9.3 grep下
9.4/9.5 sed
9.6/9.7 awk
扩展
把一个目录下,过滤所有*.php文档中含有eval的行
grep -r --include="*.php" 'eval' /data/
把这里面的所有练习题做一下
http://www.apelearn.com/study_v2/chapter14.html


正则 

第十一课预习笔记

第十一课预习笔记

显示行数

第十一课预习笔记

显示行号

 第十一课预习笔记

不区分大小写

第十一课预习笔记

取反

第十一课预习笔记

遍历所有子目录

第十一课预习笔记

过滤指定行及其以下n行

第十一课预习笔记

过滤指定行及其上面n行 

 第十一课预习笔记

过滤指定行及其上面和下面n行

第十一课预习笔记

第十一课预习笔记

过滤带0-9数字的内容

第十一课预习笔记

过滤出不带数字的内容

第十一课预习笔记

过滤以非注释内容

第十一课预习笔记

过滤非数字的内容

第十一课预习笔记

过滤非数字开头的行

第十一课预习笔记

[^0-9]里面代表非数字

^[0-9]代表数字开头

匹配r.o       .代表任意一个字符

第十一课预习笔记

过滤0到N个o的内容

第十一课预习笔记

匹配所有字符

第十一课预习笔记

过滤2个o

第十一课预习笔记

如果不想使用脱义字符,也可以写成

第十一课预习笔记

过滤出现两次oo

第十一课预习笔记

+号前的o有一个或多个,t结尾

第十一课预习笔记

问好前的o,有一个或多个

第十一课预习笔记

过滤root或login的内容

第十一课预习笔记

也可以不区分大小写进行过滤

第十一课预习笔记

sed

sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作

第十一课预习笔记

默认全部显示,指定行匹配两次。

第十一课预习笔记

也可以使用-n只显示匹配行

第十一课预习笔记

sed也支持. * + ,但是+要脱义,如果不想使用脱义符,需要加上-r

第十一课预习笔记

第十一课预习笔记

第十一课预习笔记

匹配两次o

第十一课预习笔记

匹配root或bus

第十一课预习笔记

只打印第2行

第十一课预习笔记

打印2到5行

第十一课预习笔记

打印25到最后的行

第十一课预习笔记

打印所有行

第十一课预习笔记

一条命令中,匹配两次

第十一课预习笔记

若两次匹配结果相同,那么显示两次

第十一课预习笔记

第十一课预习笔记

不区分大小写

第十一课预习笔记

在屏幕显示的时候删除指定行,不删除原文件的行

第十一课预习笔记

也可以直接将原文件中的行删除

第十一课预习笔记

在屏幕和原文件都删除user2的行

第十一课预习笔记

把root替换为toor,全局替换

第十一课预习笔记

将前10行ro+换成r , +要进行转义,所以要使用-r参数 

第十一课预习笔记

将第一行和最后一行进行替换  .*贪婪匹配,会一直匹配到最后一个冒号。小括号要使用-r

第十一课预习笔记

将/root替换为123

第十一课预习笔记

或者使用@作为分隔符

第十一课预习笔记

将所有字母删掉,相当于替换为空

第十一课预习笔记

在所有行前加入aaa:

第十一课预习笔记

awk

第十一课预习笔记

只打印第一段

第十一课预习笔记

 打印所有段

第十一课预习笔记

若不指定分隔符,默认以空格为分隔符进行打印

第十一课预习笔记

打印第一段、第三段和第四段

第十一课预习笔记

输出结果使用#分割

第十一课预习笔记

列出包含oo的所有行

第十一课预习笔记

只列出第一段包含oo的行

第十一课预习笔记

列出包含root的行的第一段、第三段和包含user的行的第一段、第三段、第四段

第十一课预习笔记

第十一课预习笔记

打印第三段的数字为0的所有段 

打印第三段的数字为0的第一段

第十一课预习笔记

打印第三段大于等于1000的所有段

第十一课预习笔记

如果1000加上双引号,那么输出结果不一样。加上双引号会被系统认定为字符串,而不是数字

第十一课预习笔记

打印第七段不是sbin/nologin的内容

第十一课预习笔记

第十一课预习笔记

打印第三段小于第四段的行

第十一课预习笔记

打印第三段等于第四段的行

第十一课预习笔记

打印第三段位于5和7之间的行

第十一课预习笔记

打印第三段大于1000或者第七段等于/sbin/nologin的行

第十一课预习笔记

打印第三段大于1000 或者第七段匹配/bash/的行

第十一课预习笔记

打印后以#分割

第十一课预习笔记

显示行号

第十一课预习笔记

显示段号

第十一课预习笔记

打印前10行

第十一课预习笔记

打印前10行并且第一行包含root或sync

第十一课预习笔记

打印段数为6段并且者第一行包含root或sync

第十一课预习笔记

打印行数和段数为数值的内容 $NR和$NF均为变量

第十一课预习笔记

把第一行赋值为root

第十一课预习笔记

结果中是以空格间隔的,我们也可以自己指定分隔符

第十一课预习笔记

求和第三段的和

第十一课预习笔记