Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配到的行打印出来。

grep的全称是:Global Search Regular Expression and print out the line.grep的工作方式是在一个或多个文件中搜索字符串模式,如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名,搜索的结果被送到标准输出,不影响文件的内容。grep也可用于shell脚本,经常使用grep通过返回状态值来说明搜索的状态,如果模式搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2.利用这些返回值就可以进行一些自动化的文本处理工具。grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。  egrep是grep的扩展,支持更多的RE元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符  表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。  正则表达式定义:是一些字符或是特殊字符串模式的集合。    功能:根据模式搜索文本,并将符合模式的文本行显示出来。  Pattern(模式): 文本字符和正则表达式的元字符组合而成匹配条件  #正则表达式就是里面有一些元字符,这些字符不表示它本身的意思,而表示通配的意义。 注:默认情况下正则表达式工作在贪婪模式下基本正则表达式元字符:字符匹配:    . :匹配任意单个字符;    [] :匹配指定范围内的任意单个字符;    [^]:匹配指定范围外的任意单个字符;        [:digit:][:alpha:][:upper:][:lower:][:space:][:alnum:][:punct:]匹配次数:用在要指定其出现的次数的字符的后面,用于限制其前面字符出现的次数;    *: 匹配其前面的字符任意次;0.1,多次;    .*:匹配任意长度的任意字符    \?: 匹配其前面的字符0次或1次;即前面的字符是可有可无的;    \+: 匹配其前面的字符一次或多次;即前面的字符要出现至少一次;    \{m\}:匹配前面的字符m次;    \{m,n\}:匹配其前面的字符至少m次;至多n次;位置锚定:    ^ :行首锚定;用于模式的最左侧;    $ :行尾锚定:用于模式的最右侧;        ^PATTERN$:用PATTERN来匹配整行;        ^$:空白行;        ^[[:space:]]*$:空行或包含空白字符的行            \或\b:词尾锚定,用于单词的最右侧;    \:精确匹配完整单词;分组及引用    \(\):将一个或多个字符捆绑在一起,当做一个整体进行处理    \(xy\)*ab         Note:分组括号中的模式匹配到的内容会被正则表达式引擎自动记录于内部的变量中,这些变量为:\1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符;\2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配到的字符;\3:......*后向引用:引用前面的分组括号中的模式所匹配到的字符扩展正则表达式的元字符     字符匹配:    .:    []:    [^]:次数匹配:    *:任意次    ?:0次或1次,    +:其前字符至少一次;    {m}:期前的字符m次;    {m,n}:至少m次,至多n次;位置锚定:    ^:行首锚定    $:行尾锚定    \,\b:词尾锚定分组及引用:    ():分组;括号内的模式匹配到的字符会被记录与正则表达式引擎的内部变量中;    后向引用:\1,\2...或:    a|b:        C|cat:C或cat        (c|C)at:cat或Cat

grep:

#文本搜索过滤工具,支持基本正则表达式

SYNOPSIS: grep [OPTIONS] PATTERN [FILE...]

Options:

--color=auto:对匹配到的文本着色后高亮显示;

-i:igmorecase,忽略字符的大小写;

-o:仅显示匹配到的字符串本身;

-v:--invert-match:反向显示;

-n:输出行号

-c:统计被匹配到的字符串出现的次数

-w:以字符为单位精确匹配

-E:--entended-regexp:支持扩展的正则表达式元字符;

-q:--quiet,--silent;静默模式,不输出任何信息;

-A #:after,后#行

-B #:before,前#行

-C #:context,前后各#行

E.g:1、查看sda硬盘状态,并显示行号

~]# df -lh |grep -n "\

7:/dev/sda1       497M  154M  344M  31% /boot

2、仅显示test文件中字3个字符组成的单词

~]# grep -o -w "[[:alpha:]]\{3\}" test

var

ntp

etc

ntp

bin

bin

egrep:    支持扩展的正则表达式实现类似于grep文本过滤             SYNOPSIS: grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]    OPTINOS:         同grep           -G:持基本正则表达式E.g:1、查找文件里所有1位数和二位数,并仅显示被匹配到的字符串本身

~]# grep -Eo "(\|\)" test

89

89

38

38

72

72

0

2、显示/etc/grub2.cfg文件中以至少一个空白字符开头后面跟非空白字符的行,并区结果的最后五行输出到屏幕

~]# grep -n "^[[:space:]]\+[^[:space:]]" /etc/grub2.cfg|tail -5

112:    fi

113:

linux16 /vmlinuz-0-rescue-f6d8429dc7d34e548fde61cc3c526f0c

root=UUID=49ceaa41-d060-4dd1-b3d0-c9d7928958fc ro crashkernel=auto rhgb

quiet

114:    initrd16 /initramfs-0-rescue-f6d8429dc7d34e548fde61cc3c526f0c.img

136:  source ${config_directory}/custom.cfg

138:  source $prefix/custom.cfg;

#egrep可以把很多grep里面的正则表达式转意符去除,使命令更简洁,具体参考扩展正则表达式fgrep:不支持正则表达式元字符;    当不需要用到元字符去编写模式时,使用fgrep必能更好。

linux文本三剑客,Linux文本处理三剑客之grep相关推荐

  1. LINUX学习—AWK(LINUX三剑客)

    awk是一个报告生成器,拥有强大的文本格式化能力: 也是一种文本处理工具,但其主要功能是从处理文件中按照输入的信息格式后显示的工具 awk是一种编程语言,支持条件判断.数组.循环等功能.用于在linu ...

  2. 常用命令_LINUX三剑客之文本处理(一):分别利用awk和sed命令添加列文本

    常用命令_LINUX三剑客之文本处理 首先是源文本test.tcl @@ cat test.tcl- switch_core_1 HEADBUFMDV32_140P7T35R + FIXED ( 13 ...

  3. linux如何编译tex,Linux下优秀的文本编辑器(Markdown、LaTeX、MathJax)

    这样一个标题可能不太准确,因为确实无法准确地解释什么叫"Linux下优秀的文本编辑器".其实我这篇随笔主要是想探讨Markdown.LaTeX.MathJax,有兴趣的朋友可以继续 ...

  4. Linux入门-7 Linux管道、重定向以及文本处理

    Linux管道.重定向以及文本处理 1 Linux多命令协作:管道及重定向 管道和重定向 2 Linux命令行文本处理工具 文件浏览 基于关键字搜索-grep 基于列处理文本-cut 文本统计-wc ...

  5. Linux下常见的文本处理命令

    众所周知,在Linux下"一切皆文件"的原则,一切配置文件都可以以文本的方式进行编辑.存储.故对文本文件的操作能力,决定着你是否能够在Linux下操纵自如.今天,就写下几个关于Li ...

  6. linux编辑文档windows,1.9vim编辑器linux内核的底层文本编辑器,跟windows系统上的文本文档类似,大部分用这个工具进行文本的编辑,这个工具的操作方式基本上用不到鼠标,多是...

    1.9vim编辑器 linux内核的底层文本编辑器,跟windows系统上的文本文档类似,大部分用这个工具进行文本的编辑,这个工具的操作方式基本上用不到鼠标,多是用命令去操作 这个工具分为三种模式:命 ...

  7. linux命令中提取某一列,怎么用Linux命令提取表格文本中的某列

    如何用Linux命令提取表格文本中的某列 文本文件x.txt内容如下: kaa a:\dkdkdk 123 dfdfdf b:\xxxxxxxxx 3234 j你好x c:\fdfdfv 打开 我现在 ...

  8. linux从表中提取信息,如何用Linux命令提取表格文本中的某列

    文本文件x.txt内容如下: kaa a:\dkdkdk 123 dfdfdf b:\xxxxxxxxx 3234 j你好x c:\fdfdfv 打开 我现在要提取第二列,即: a:\dkdkdk b ...

  9. 【Linux 笔记】Linux 基本操作 - 04. 利用SRA数据实践文本处理

    [Linux 笔记]Linux 基本操作 - 04. 利用SRA数据实践文本处理 10. 文本处理实践 基本操作 grep 筛选数据(行) cut 和 awk 操作数据(列) sort 常用参数总结 ...

  10. linux中vim文本编辑器的默认模式是,Linux 下 vi/vim 文本编辑器超详细使用指南

    Linux下的编辑器最经常使用的就是vim或者vi文本编辑.vi 和vim 编辑器的区别是vim是vi的改进版本,在vi 编辑器的基础上上扩展了不少实用的功能. 大多数的linux/unix 发行版本 ...

最新文章

  1. android获取string.xml的值(转)
  2. linux java多线程_Java多线程从简单到复杂
  3. java--用 * 打印出各种图形(新手请进)
  4. Distributed Representations of Sentences and Documents
  5. 深入Python字典的内部实现
  6. linux so替换,linux 热替换so文件
  7. ubuntu上常用的软件安装
  8. (二十四)美萍酒店管理系统:散客开单
  9. css background动态图片,CSS3 background-position定位背景图片动画效果
  10. 幼麟棋牌登录流程分析
  11. Between 的开始日期和结束日期是同一天没有查询结果,附SQL server数据库的日期时间格式转换大全
  12. termite:从零开始的go语言学习生活
  13. 20210904英雄联盟记录
  14. pandas系列学习(五):数据连接
  15. 一眼就能看懂的Java自学手册,附详细答案解析
  16. java中文句号转换英文句号_java实现中文或其他语言及标点符号等转换成unicode字符串,或unicode的16进制码转换回文字或符号等...
  17. 视频编码中的一些缩写
  18. C# .NET 判断输入的字符串是否只包含数字和英文字母
  19. 【 算法图解 】 读书笔记
  20. 认识元器件 自学笔记

热门文章

  1. maven 与intellij IDEA 下maven 为groovy 项目生成jar 详解
  2. ubuntu 一个好系统
  3. obs 直播 多路推流插件 简介
  4. cpu spectre 幽灵 漏洞 突破内存独立性限制 简介
  5. linux c 时间函数 time difftime 简介
  6. linux awk 获取最后一列 获取倒数第二列
  7. CloudFlare 免费CDN加速 使用方法
  8. linux挂载卸载不掉 umount target is busy
  9. shell中数字大小的比较
  10. 深入理解 C 指针阅读笔记 -- 第四章