摘要:我们已经学过正则表达式了,所以现在开始学习 grep 也是水到渠成的事情。

简介:grep 是 Linux 中最常用的“文本处理工具”之一,grep 与 sed、awk 合称为 Linux 中的三剑客。

grep 的全称:Global search Regular Expression and Print out the line

全称中的:"Global search" 意为全局搜索之意

全称中的:“Regular Expression” 意为正则表达式

全称中的:”Print out line“ 意为打印(匹配)行

主要的参数:

--color=auto 或者 --color:表示对匹配到的文本着色显示(alias可以看到别名 ,在Ubuntu 18.04中可以看到 grep = 'grep --color=auto',已默认着色显示)

-i:在搜索的时候忽略大小写

-n:显示结果所在行

-c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数(可能一行中有多个匹配项)

-o:只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行(与 -n 连用,可看到同一行中匹配了几个字符串)

-v:输出不带关键字的行(反向查询)

-w:匹配整个单词,如果字符串中包含这个单词,则不作匹配

-Ax:在输出的时候包含结果所在行之后的指定行数,这里指定之后的 x 行(A:After)

-Bx:在输出的时候包含结果所在行之前的指定行数,这里指定之前的 x 行(B:Before)

-Cx:在输出的时候包含结果所在行之前和之后的指定行数,这里指定之前和之后的 x 行(C:Context)

-e:实现多个选项的匹配,逻辑或(or)关系

-q:静默模式,不输出任何信息,当我们只关心有没有匹配到,却不关心匹配到的内容时,我们可以使用此命令,然后,使用 ”echo $?“ 查看是否匹配到,0表示成功匹配到,1表示没有匹配到。

-P:表示使用兼容 perl 的正则搜索引擎

-E:使用扩展正则表达式,而不是基本正则表达式,在使用 -E 选项时,相当于使用 egrep

另外,除了 grep 命令,其实还有 egrep命令,还有 fgrep(fast grep) 命令,它们有各自的特点

grep:支持基本正则表达式

egrep:支持扩展正则表达式,相当于 grep -E

fgrep:不支持正则表达式,只能匹配写死的字符串,但是速度奇快,效率高

参考博客:http://www.zsythink.net/archives/1733

Ubuntu---grep的更多相关文章

  1. shell脚本--内容查找之grep命令

    grep命令可以检索文件中包含关键字(可以使用正则)的行,默认区分大小写. ubuntu@ubuntu:~/test$ cat test.txt this is linux this is Linux ...

  2. ubuntu 14.04 系统配置磁盘,CPU,内存,硬盘信息查看

    Linux查看物理CPU个数.核数.逻辑CPU个数# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 查看分区磁盘 ...

  3. Unix/Linux笔记全集

    1:Unix/Linux操作系统概述 要求:理解应用软件和操作系统的区别,掌握系统的Kernel(核心)和shell(外壳)之间的关系以及各自的作用 Solaris:Solaris 是Sun Micr ...

  4. linux系统编程:自己动手写一个who命令

    who命令的作用用于显示当前有哪些用户登录到系统. 这个命令执行的原理是读取了系统上utmp文件中记录的所有登录信息,直接显示出来的 utmp文件在哪里呢? man who的时候,在手册下面有这么一段 ...

  5. UNIX网络编程——名字与地址转换(gethostbyname,gethostbyaddr,getservbyname,getservbyport,getaddrinfo,getnameinfo函数)

    名字和数值地址间进行转换的函数:gethostbyname和gethostbyaddr在主机名字与IPv4地址之间进行转换.getservbyname和getservbyport在服务器名字和端口号之 ...

  6. IPv6简介

    https://segmentfault.com/a/1190000008794218 IPv6的优点 更大的地址空间 名字叫IPv6,但它的长度并不是64位,而是128位,总的地址空间大约为3.4* ...

  7. linux获取日志指定行数范围内的内容

    假如我要获取“浅浅岁月拂满爱人袖”到“落入凡尘伤情着我”之间的内容. 1.首先得到他们所在的行号: -n选项显示行号 但是有时候grep后显示的是“匹配到二进制文件(标准输入)”,说明搜索的字符串在某 ...

  8. 认识与学习shell

    linux的终端机执行命令的方式,是通过bash环境来处理的.bash包括变量的设置与使用,.bash操作环境的构建.数据流重定向的功能.下面的知识,对主机的维护与管理有重要的帮助. 管理整个计算机硬 ...

  9. 红蓝对抗 - 蓝队手册(BTFM)(转载)

    本文已发表在嘶吼RoarTalk,未经授权,请勿转载! http://www.4hou.com/technology/10173.html 最佳阅读体验版:https://stackedit.io/v ...

  10. ubuntu18.04使用kubeadm部署k8s单节点

    实验目的: 体验kubeadm部署k8s服务,全流程体验! 实验环境: ubuntu18.04 联网在线部署 kubeadm 01.系统检查 节点主机名唯一,建议写入/etc/hosts 禁止swap ...

随机推荐

  1. Ubuntu16.04主题美化

    系统更新 sudo apt-get update sudo apt-get upgrade # 卸载libreOffice libreoffice是ubuntu自带的开源office软件,体验效果不如 ...

  2. 使用Navicat连接阿里云mysql报错10061

    1.添加一个远程访问账号admin mysql> use mysql; mysql> GRANT ALL ON *.* TO 账户@'%' IDENTIFIED BY '密码' WITH ...

  3. Windows中的备份和还原

    1:增量备份 (查看文件属性,只备打了勾的,备完后把勾取消掉,修改后勾都会打上) 2:差异备份(备份有勾的 ,备份完后不会取消勾) 周一:备一 周二:备二 周三:备三 周四:备三,四

  4. 使用 ping++做支付的流程

    获取支付凭据 /// <summary> /// 获取支付凭据 /// </summary> /// <param name="model">& ...

  5. 机器学习笔记之三-yolov3+win7+vs2017+gpu+opencv编译

    1.环境安装 1.1 vs2017+cuda9.1+cudnn7.0可以和tensorflow一起安装网上教程多,不多说.       唯一需要注意的是vs2017要安装好2015版本的工具集v140 ...

  6. mybatis使用枚举优化

    文章转自: https://segmentfault.com/a/1190000010755321 问题 在编码过程中,经常会遇到用某个数值来表示某种状态.类型或者阶段的情况,比如有这样一个枚举: p ...

  7. 移植QT库的问题:QT_INSTALL/include/QtCore/qatomic_arm.h:131: Error: no such instruction: `swpb %al,

    解决办法:错误信息说明编译器未识别swpb汇编操作,指令集有问题.把配置命令改成: ./configure -embedded armv7 -prefix /home/thwijeth/Softwar ...

  8. FPM 0.08安装了打不开解决办法

    今天在网上找了FPM软件下载,结果却不能打开,于是到处找资料,终于解决了,呵呵,写下来供大家学习. 用UltraEdit打开FPM.exe,查找"改为8B,F2改为00,然后保存,就可以打开 ...

  9. Jquery 正则式验证

    // 验证中文名称 function isChinaName(name) { var pattern = /^[\u4E00-\u9FA5]{1,6}$/; return pattern.test(n ...

  10. codeblock字体问题

    有的时候在codeblock中打下划线,会显示空格, 这个时候可以修改一下字体 settings->editor->editor settings最上面的fonts框中选择choose,然 ...