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 来使用。|是选其一,可以有多个

转载于:https://blog.51cto.com/13691454/2135770

26期20180703 正则 grep相关推荐

  1. 《强化学习周刊》第26期:UCL UC Berkeley发表深度强化学习中的泛化研究综述、JHU推出基于强化学习的人工决策模型...

    No.26 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.为帮助研究与工程人员了解该领域的相关进展和 ...

  2. science最新研究动态周报(2021年5月26期)

    SNC杂志一周科研新进展精选导读(2021/5/26期) 1.Nature最危险的衰老细胞及抗衰老药新靶点 明尼苏达大学医学院的研究人员最近在<Nature>杂志上发表的一项研究中发现,衰 ...

  3. 《痞子衡嵌入式半月刊》 第 26 期

    痞子衡嵌入式半月刊: 第 26 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期. 本期刊是开源项目(GitHub: JayHeng/pz ...

  4. 【区块链技术工坊26期实录】张东光:区块链+医疗应用实践探讨

    1,活动基本信息 1)题目: [区块链技术工坊26期]医疗区块链应用与智能合约实践 2)议题: 1] 数字货币和以太坊的演进路线与差异. 2] 医疗区块应用中的隐私保护机制建立. 3] 可参与医疗模式 ...

  5. 【CSDN竞赛第26期】赢实体图书盲盒和高级定制背包等周边

    一.报名地址 第26期周赛报名地址,2月5日 9点开考(周日):https://edu.csdn.net/contest/detail/40 第25期周赛也在报名中,2月1日 19点开考(周三):ht ...

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

    6月26日任务 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库(视频中ppt小错误: gpcheck改为gpgcheck ...

  7. 正则,grep命令详解

    正则表达式和grep.vim.awk.sed等的关系: 正则表达式是一种方法,相当于一种工艺,grep等命令相当于是一个具体的加工机器,机器在加工产品的时候,采用这种方法. 命令是怎么执行的: sel ...

  8. 力扣(LeetCode)刷题,简单+中等题(第26期)

    目录 第1题:字典序排数 第2题:字符串解码 第3题:查找常用字符 第4题:所有奇数长度子数组的和 第5题:长按键入 第6题:分割字符串的最大得分 第7题:回文链表 第8题:有多少小于当前数字的数字 ...

  9. 【组队学习】【26期】图神经网络

    图神经网络 论坛版块: http://datawhale.club/c/team-learning/27-category/26 开源内容: https://github.com/datawhalec ...

最新文章

  1. Sentinel 高可用流量管理框架
  2. Cannot create file Altium\AD15\Library\BSDL\Generic\BSDL_FileMap.txt.拒绝访问
  3. camuda流程引擎如此简单「五」
  4. 将VMware Workstation 12 Pro的虚拟网卡修改为自己希望的IP网段
  5. cad怎么快速算面积_用cad算面积的快捷键方法步骤详细,大朗CAD培训班
  6. 赞,全网开发者都在学的 26 门 AI 课程!
  7. java this.name= name_thread(this, ThreadName)对于Java中这个语句,this是什么?
  8. 【概念集锦】之 shim和polyfill
  9. SpringMVC,3种不同的URL路由配置方法 [转]
  10. 拓端tecdat|主成分分析(PCA)原理及R语言实现及分析实例
  11. 无线网卡服务器关闭了怎么办,台式机无线网卡自动禁用怎么办
  12. 超级漂亮炫酷的HTML菜单栏导航栏+网站+独特二级列表
  13. netcfg.exe
  14. ps界面为啥突然变大了_PS教程丨皮肤美白修饰
  15. 高德地图接口申请 地图接口集成 高德地图API文档
  16. 使用math.sin时报错only size-1 arrays can be converted to Python scalar
  17. (个人)太极拳学习系统创新实训第一周(一)
  18. Minecraft 1.19.2 Forge模组开发 05.矿石生成
  19. 【机器学习】监督学习,非监督学习,半监督学习三者的定义区别及举例分析
  20. vscode之git配置

热门文章

  1. 获取授时时间_gps时间同步服务器在通信行业的解决方案
  2. 淮海工学院计算机组成原理,淮海工学院1112-1计算机组成原理试卷A.doc
  3. java的圆周率_java学习日记,圆周率的打印
  4. linux登出系统,讲解Linux操作系统进入与退出系统方法
  5. POJ3522Slim Span(最大边与最小边差值最小的生成树)
  6. Codeforces 797C Minimal string【贪心】
  7. 【企业管理】2020年3-4 月 每日花语
  8. 很多人问,到底要不要转管理
  9. Nginx配置实例-动静分离实例:搭建静态资源服务器
  10. SpringCloud -创建统一的依赖管理