六周第一次课(4月25日)笔记

9.1 正则介绍_grep上
9.2 grep中

9.3 grep下

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


创建一个grep文件夹,并把/etc/passwd内容拷贝到该文件夹下,grep 'nologin' passwd发现关键字会自带颜色,使用绝对路径或者在CentOS6中不带颜色,如下图所示:

-c显示总行数, -n 显示每一行的数字, -ni区分大小写,-vni和前面数字互补



-r遍历所有子目录,


下图只是一部分,-r有对/etc/下所有子目录进行遍历搜索的功能


对比之:grep 'root' /etc/ 提示/etc/为目录,只能对某文件grep搜索,通过grep -r 'root' /etc/ > /tmp/grep.log重定向后,再使用grep passwd /tmp/grep.log找到对/etc/passwd的遍历


-An 把关键字行和其下面n行都列出来

-Bn把关键字行和其上面n行列出来

-Cn把关键字行和其上下n行都列出来

如下图所示


grep相关正则 (从第三行开始) 

grep '[0-9]' passwd


-v 取反


vi /etc/ initab 输入:set nu,发现第九行第十行有数字,故而被过滤


把/etc/inittab系统文件拷贝到当前文件夹,并做任意修改,使用命令 grep -n '^#' /etc/inittab 和grep -n '^#" ./inittab 作对比,发现改动行处

实际用法:在查看服务配置文件时,由于#都是解释性语句,可以用grep -vn '^#'  /filname取反过滤掉#的行直接查看清晰明朗的服务器配置文件

^放在[]里面”取非“,放在[]外面表示”以xxx开头“

如下图例子所示:




grep 'r.o' 其中的.表示任意字符

grep 'o*o' 其中*表示前面字符的任意重复次数n

grep ' .*' 其中. *表示任意字符的任意重复


匹配某用户:grep ' username.*bash' passwd


{} 在正则中表示范围,o{2}表示o出现的次数为2次,但是必须加上脱义符才可以用grep命令搜索到;如果不想加脱义符,则要用grep -E或者egrep,如果想查多个字符,如oo需要用(oo)作为一个整体


"+"的用法和"*"类似,区别在于①需要脱义 ②前面的字符范围时1-N,后面的为0-N


"o?t" 中的?表示前面字符(本例中为g)出现0次或者1次的情况


|表示或者,用i不区分大小写,需要用grep -E或者egrep免去脱义符


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值