1. 背景

在讲到shell编程时, 我们不得不提到正则表达式,  这个可以看似一门新的编程语言的"老家伙", 让我们很多刚入行的程序员来说又爱又恨, 爱因为它实在可以用最简短的语句写出强大的功能,  恨是因为它的语法与我们原来接触的任何一门高级编程语言来说都看似不似.  下面我们就开始主要来介绍正则

2. 正则分类

  • Basic正则:  出来的比较早, grep一般默认的就是Basic正则

  • Extended正则: 对Basic的扩展,   默认支持更多的转义字符

3. 基本语法

4. 数量限量符

5. 位置限定符

6. 其它特殊字符

grep

1. 作用

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。

2. 参数

grep [options]

主要参数: linux下 grep --help可查看

-c:    只输出匹配行的计数

-i:    不区分大小写

-h:    查询多文件时不显示文件名

-l:    查询多文件时只输出包含匹配字符的文件名

-n:    显示匹配行级行号

-s:    不显示不存在或无匹配文件的错误信息

-v:    显示不包含匹配文本的所有行

--color=auto:    可以将找到的关键词部分加上颜色的显示

实战操作:

1、已知文件test.txt内容为[test][liyao][sea],请给出打 印test.txt内容时,不包含sea字符串的命令

[假设这个目录文件是存在/data/下]

方法一: grep -v "sea" /data/test.txt

方法一: cat /data/test.txt | grep -v "sea"

对比两方法, 方法二比方法一效率慢一些,   但专业一些.

转载于:https://blog.51cto.com/lisea/1793447

linux-----shell高级编程----grep应用相关推荐

  1. linux shell 高级编程,shell高级编程

    条件选择if语句 选择执行: 注意:if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else条件为假的分支代码 fi ...

  2. 第二部分 Linux Shell高级编程技巧——第三章 运行级别脚本介绍

    笔记 #运行级别脚本介绍 #准备工作 #进入目录 cd /home/wgb/shell #建立文件夹 mkdir 0421 #进入目录 cd 0421#运行级别 #运行级别目录 #进入etc目录 [r ...

  3. 博客文件第二部分 Linux Shell高级编程技巧——第一章 深入讨论

    最近研究博客文件,稍微总结一下,以后继续补充: 道歉 由于频视出了点问题,所以临时只有这点内容,期后再补上. 条记 #录记和域 #入深探讨awk #编辑 #vi awkif.sh #转变权限 [roo ...

  4. Linux shell脚本编程(三)

    Linux shell脚本编程 -------------------------------------------------------------------- 注:如果你对python感兴趣 ...

  5. Linux Shell脚本编程基础

    2 Linux Shell脚本编程基础 发表于: Linux, Shell, UNIX, 资源分享 | 作者: 谋万世全局者 标签: Linux,Shell,编程基础,脚本 本文作者:Leal 授权许 ...

  6. Linux shell 脚本编程-实战篇(三)

    继: Linux shell 脚本编程-实战篇(二) 3. 一些小有意思的脚本 3.1 发送消息 3.1.1 功能分析 对于这种简单的脚本,需要的功能不多.涉及的一些命令很常见,下面了解脚本所需的几个 ...

  7. Linux shell 脚本编程-实战篇(二)

    继: Linux shell 脚本编程-实战篇(一) 2. 创建与数据库.Web及电子邮件相关的脚本 2.1 MySQL 数据库 2.1.1 MySQL 数据库安装 到 http://repo.mys ...

  8. Linux环境高级编程函数,Linux环境高级编程--出错处理(CLStatus)

    很多程序库对外提供若干类,每个方法出错时如何告知调用者是否出错,以及出错码(在Linux上在error.h中的全局errno就是保存我们Linux程序执行的出错码的)?方法很多,为了简化起见,函数将返 ...

  9. linux环境编程 学习,学习linux环境高级编程首先学习的是文件的操作。因为有.pdf...

    学习linux环境高级编程首先学习的是文件的操作.因为有 学习 Linux 环境高级编程,首先学习的是文件的操作.因为有一句很有趣的话"Linux 下一切皆文件".所以掌握了文件操 ...

  10. Linux shell脚本编程(二)

    Linux shell脚本编程(二) -------------------------------------------------------------------- 注:如果你对python ...

最新文章

  1. 同一个内容,对比Java、C、PHP、Python的代码量,结局意外了
  2. 《父亲家书》选:父亲的忙碌和欣喜
  3. 项目用的几种机型参数调查
  4. SSAS : 使用.NET为SSAS编写自定义程序集(四)
  5. C++ Primer 第五版 第7章类 7.1——类讲解(成员函数、非成员函数、构造函数)
  6. 韦东山和正点原子IMX6ULL开发版的区别
  7. orm2 中文文档 1. 连接到数据库
  8. 计算机网络数据链路层之点对点协议PPP
  9. windows和linux 下将tomcat注册为服务
  10. 买个社区团购小程序多少钱呢?微信社区团购小程序怎么做
  11. 【下载工具】哔哩哔哩视频下载器——(Downkyi)下载姬v1.3.3
  12. 技巧篇:常用的R代码汇总
  13. 读高明之《帛書老子校注》
  14. C#数据结构与算法总结
  15. 最优化路径和火车票退票
  16. 使用SDL2_mixer库播放MP3音乐
  17. UNH-IOL获批成为首家获得OVP认证的第三方实验室
  18. 使用MySQL管理工具-SQLyog 9.63报错号码2058,超详细解析
  19. Spring-DI详解
  20. TCP的TIME WAIT快速回收与重用

热门文章

  1. C语言清空输入缓冲区的N种方法对比(转)
  2. 1010.在线视频—开源网管Nagios(三)使用Nagios监控服务器
  3. C# 利用net 命令获取域用户列表
  4. 发现一个很好的工具——VNN
  5. Android View体系(六)从源码解析Activity的构成
  6. python类、对象、方法、属性之类与对象笔记
  7. JavaBean中DAO设计模式介绍
  8. More Effective C++:理解new和delete
  9. MF训练套件(1):如何去除应用标题?
  10. 给history命令加上执行用户和时间