26期20180703 正则 grep

7月3日任务

9.1 正则介绍_grep上
9.2 grep中
9.3 grep下
扩展
把一个目录下,过滤所有*.php文档中含有eval的行
grep -r --include="*.php" 'eval' /data/

正则表达式

使用grep可以查找文件中的关键字。

语法: grep  "关键字" 文件名

有一些选项是可以选的。

-n 是显示行号

-c显示行数,一共在这个文件中有多少行带有这个关键字

-v取反,就是多少行没有这个关键字,也就是除了关键字的那两行外

-A 数字,表示显示出关键字以及往下数字行的内容

-B 数字,是和A想反是往上数字行

-C 数字 就是既有上又有下,往上数字行 往下数字行

grep '[0-9]' filename

表示0-9范围里的数字匹配

也可以采用排除的选项 -v

grep -v '[0-9]' filename

关键字里的参数

grep -v '^#' filename

grep -v '^[0-9]' filename  就是查找非开头为数字的行

-v是取反 ^是行开始的意思  ^#就是以#为开头的行

grep -v ‘^#’ inittab 取出来首字母不为#的行

注意:这个^是在[]里面

grep '[^0-9]' inittab 作用是非0-9,只要不是数字任何一个字符都符合要求。就是说哪怕有一个字符不为0,这一行都满足要求。

这个是以一个非数字的字符开头的行,只要不是数字开头都符号,哪怕是后面有数字都没有关系。所以下面

同样的,假如前面再加上一个 ^ 就表示首位也不能是数字,所以首位有数字的也没了。

grep 'r.o' passwd 这里的点代表了任意一个字符,占位符。

grep 'o*o' passwd *表示左边匹配0到无限次,右边必须存在

如果是使用'.*'的话,表示匹配任意字符。*的左边可有可无嘛

比如像找某个用户的那一行,直接用'用户名.*bash' 就可以查到

正则中{}表示范围,但是需要用阻转义符 \

grep 'o\{2\}' passwd 表示有2个o的

grep 'o\{1,3\}' passwd 表示1-3个o,记得用逗号,

但是转义符比较免费,看起来也比较不舒服,是否可以不用\?

那样的话,egrep就登场了

egrep是grep的扩展

grep -E = egrep

egrep 'o{2}' passwd等同于 grep 'o\{2\}' passwd 等同于 grep -E 'o{2}' passwd

如果是像匹配最后一个字符是什么字母的话,需要在这个字母后面加上$ 换行符 表面后面没有了

比如查找s开头n结尾

+ 在egrep 或者 grep -E下使用无需转义符

+和*很像,区别是 + 表示+左边一次或者无数次 而*是表示左边0次或者无数次

egrep 'o?t' passwd 问号表示问号前面字符出现的次数为0或者1

|表示或者,但是也需要使用egrep或者grep -E 来使用。|是选其一,可以有多个

原文地址:http://blog.51cto.com/13691454/2135769

时间: 2024-10-07 23:42:36

26期20180703 正则 grep的相关文章

老男孩教育运维班26期脱产班9月即将开班,伙伴们抓紧报名!

老男孩教育中国linux运维领域教育第一品牌,不仅教学质量一流,就业薪水更是一流! linux运维班平均毕业工资10K,高级架构师毕业平均薪资16K. 本课表为201508制定,适合26期脱产班,最艰苦的周期4-5个月,有胆量挑战么? 什么?还没有掌握linux高级运维实战技术?那你真OUT了! 什么?工资还没过10K,那你更OUT了,北京平均工资最低也10K以上了! 屌丝们最后的福利! 身价千万的老板不足为奇! 身价千万的明星也不足为奇! 身价千万的运维屌丝你见过么?什么-没见过!!! 他如今

老男孩26期运维班linux基础知识大比拼即将开始

老男孩26期运维班linux基础知识大比拼 1 比赛说明 比赛时间:2015年11月12日下午15点 比赛地点:老男孩教育教室二 比赛人员:老男孩教育26期全体同学 奖项:团体奖(按组奖励共1-9组): 一等奖奖励300元人民币或每人老男孩老师新书一本和老师合影签名. 二等奖奖励200元人民币 三等奖奖励100元人民币 个人奖:3名,赠老男孩新书一本 惩罚:没有得奖的组,或者组内无人得奖的组,罚100元或派选代表表演一个节目(唱歌或其它) 比赛规则当场宣布: 主评委:老男孩老师,张导 辅助评委:

《善圈第26期天天圈》:善圈520,鞠躬迎老兵!

亮点:<善圈第26期天天圈>5.20今日精彩回顾:善圈520,鞠躬迎老兵! 深圳罗湖京基100大厦71层善圈,今天迎来了一位尊贵的客人,他是共和国功臣,一位抗美援朝的英雄老兵--现年83岁的老爷爷陈碧.只见他身穿昔日的绿色军装,挂满了各种军功章. 老人家精神矍铄地向大家行军礼,参加学习的企业家纷纷与老人家合影留念,聆听英雄老兵讲述峥嵘岁月的战斗故事. 著名作家魏巍<谁是最可爱的人>将人们的记忆,回放到60多年前那场让全世界为之瞩目的抗美援朝战争.曾经多少优秀中华儿女,雄赳赳气昂昂跨

《HelloGitHub》第 26 期

公告 五月初 hellogithub.com 网站做了优化和试错.因为我个人能力原因,导致这段时间网站出现了间断性不能访问,现在问题已经修复.多谢大家的支持.理解和反馈. 网站新增了"星图"的功能,还在测试阶段欢迎反馈问题. 总而言之,今年已过半 HelloGitHub 还在路上,希望大家多多支持,我们会越来越好.?? <HelloGitHub>第 26 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目.

正则grep

什么是正则: 正则就是一串有规律的字符串. 正则三剑客: grep/egrep (egrep是grep的扩展),sed, awk grep grep过滤指定关键词 [[email protected] grep]# grep 'nologin' passwd -c 行数 [[email protected] grep]# grep -c 'nologin' passwd 15 -i 不区分大小写 [[email protected] grep]# grep -i 'nologin' passwd

26期20180626 rpm 安装软件包的方法 yum

6月26日任务 7.1 安装软件包的三种方法7.2 rpm包介绍7.3 rpm工具用法7.4 yum工具用法7.5 yum搭建本地仓库(视频中ppt小错误: gpcheck改为gpgcheck,yum cean 改为 yum clean)扩展1. yum保留已经安装过的包 http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml2. 搭建局域网yum源http://blog.lishiming.net/?p=500 windo

26期20180608find命令 文件后缀

6月8日任务2.23/2.24/2.25 find命令2.26 文件名后缀 find命令 Find 是用来搜索文件 which 接上命令是用来查找这个命令在环境变量中的位置 whereis 也可以找, 但是需要update 数据库才可以 updatedb locate命令是需要安装的,安装命令 yum install -y mlocate 记得要updatedb 介绍几个常用的快捷键 ctrl c 终止当前 ctrl a 光标回到当前的最前位置  相对应的 ctrl e 回到最后位置 ctrl

26期20180627 更换国内源 yum下载rpm包 源码包安装

6月27日任务 7.6 yum更换国内源7.7 yum下载rpm包7.8/7.9 源码包安装扩展1. 把源码包打包成rpm包 https://jin-yang.github.io/post/linux-create-rpm-package.html yum更换国内源 所谓更改国内源就是把安装的地址换成国内的服务器.做法就是更换CentOS7-Base文件为163的文件. 打开可以看到实际上是把原先的源地址给注释掉了, 然后使用的是163的地址. 所谓安装扩展源就是基础源base不够用的时候安装的

26期20180628 shell 命令操作 通配符 输出输入重定向

6月28日任务 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 shell介绍 Shell脚本只是一个表现,所谓的shell是一个命令解释器,用户和机器的一个交互 Shell我们主要使用的是bash shell 另外还有zsh ksh等 yum list |grep zsh yum list |grep ksh history查看历史命令 -c 是清空内存的命令历史 其实所有的历史命令都存在一个文件里 /root/.bash_histro