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

grep搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。

grep的规则表达式(正则一定要转义)

1

2

3

^    #锚定行的开始 如:'^grep'匹配所有以grep开头的行。   

$    #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。

.    #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。

1

2

3

4

5

6

7

8

9

10

11

12

13

*    #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 

.*   #一起用代表任意字符。  

[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。   

[^]  #匹配一个不在指定范围内的字符

\(..\)  #标记匹配字符,如'\(love\)',love被标记为1。   

\<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。   

\>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。   

x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。   

x\{m,\} #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。   

x\{m,n\}#重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  

\w    #匹配文字和数字字符,也就是[A-Za-z0-9],

\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  

\b    #单词锁定符,如: '\bgrep\b'只匹配grep。

grep常见命令参数

常用选项:-E :开启扩展(Extend)的正则表达式。-i :忽略大小写(ignore case)。-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。-n :显示行号-w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。-o :只显示被模式匹配到的字符串。--color :将匹配到的内容以颜色高亮显示。-A  n:显示匹配到的字符串所在的行及其后n行,after-B  n:显示匹配到的字符串所在的行及其前n行,before-C  n:显示匹配到的字符串所在的行及其前后各n行,context

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<br>-n  打印行号

    grep -n ".*" h.txt        所有打印行号

    grep -n "root" h.txt      匹配的内容显示行号

-v  不包括

-E  表示过滤 多个参数

    grep -Ev "sshd|network|crond|sysstat|"

-o:仅打印你需要的东西,默认打印正行

     grep -o "hello" h.txt

-i:忽略大小写

    grep -i "hello" h.txt

-c: 用于统计文中出现的次数

--color=auto  过滤字段添加颜色

    利用正则打印特定字符

\b:作为边界符,边界只包含特定字符的行

    grep "\bhhh\b" /etc/passwd   -->只过滤包含hhh的行

Linux egrep命令详解

1

2

3

4

egrep: == grep -E 用于显示文件中符合条件的字符

          env|egrep "USER|MAIL|PWD|LOGNAME"

          用的表达式不一样 ,egerp更加规范

egrep -o "oldboy|hello" h.txt   -->仅仅输出 oldboy 和 hello

常用的命令展示

查找指定关键字个数

1

grep '\bboot\b' logs_bak.txt 【\b单词锁定符,只匹配boot】

输出logs_bak.txt 文件中含有从logs.txt文件中读取出的关键词的内容行

1

2

3

cat logs_bak.txt

    cat logs.txt

    cat logs.txt | grep -nf logs_bak.txt

从多个文件中查找关键词

1

grep "omc" /etc/passwd /etc/shadow 【多文件查询时,会用冒号前添加文件名】

打印IP信息

1

ifconfig eth0|grep -E "([0-9]{1,3}\.){3}" 【-E 表达式匹配,用小括号括起来表示一个整体】

同时过滤多个关键字

1

2

cat /etc/passwd|grep -E "boy|omc"

   ==> cat /etc/passwd|egrep "omc|boy" 【用 | 划分多个关键字】

显示当前目录下面以.txt 结尾的文件中的所有包含每个字符串至少有7个连续小写字符的字符串的行

1

2

grep '\w\{7\}' *.txt

   ==> grep '[a-z]\{7\}' *.txt 【注意特殊字符的转义】

    上下文的控制(了解)

1

2

3

4

# A   查询匹配内容的一行之外,后n行的显示

    # B   查询匹配内容的一行之外,前n行的显示

    # C   查询匹配内容的一行之外,显示上下n行

grep -n 'yum' -A 3 logs_bak.txt

Linux grep/egrep命令详解相关推荐

  1. linux的strace命令(详解)

    linux的strace命令(详解) 本文详细讲述linux下的strace命令的用法. strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用. strace 显示这些调用的 ...

  2. linux中的ps fx命令,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断 ...

  3. linux环境下ps命令行,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 Linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运 ...

  4. linux中mkdir命令含义,Linux中mkdir命令详解

    Linux中mkdir命令详解 linux mkdir用来创建目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1. 新建一个文件夹 one 2. 新建三个 ...

  5. linux 卸载htop,Linux之htop命令详解

    Linux之htop命令详解 一.htop简介 htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses. 与Linux传统的top相比, ...

  6. <Linux>《Linux 之 ps 命令详解大全(含实用命令)》

    <Linux 之 ps 命令详解大全(含实用命令)> 1 常用命令 1.1 显示所有当前进程 1.2 显示所有当前进程 1.3 显示所有当前进程 1.4 根据用户过滤进程 1.5 根据 C ...

  7. linux renice命令,Linux操作系统的renice命令详解

    Linux操作系统的基础知识并不是很难理解,熟悉掌握基础知识能更好的学习Linux.下面由学习啦小编为大家整理了Linux操作系统的知识点总结的相关知识,希望对大家有帮助! Linux操作系统的ren ...

  8. Linux中iptraf命令详解(IP局域网监控工具)

    2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03   作者:佚名    ...

  9. linux ln(link) 命令详解

    linux ln(link) 命令详解 功能说明:连接文件或目录. 语 法:ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][--help][--v ...

最新文章

  1. 全球首个城市内河无人驾驶数据集发布、奥地利学者用「量子扭曲」加速强化学习 | AI日报...
  2. Python 实战多元线性回归模型,附带原理+代码
  3. paper 123: SVM如何避免过拟合
  4. jQuery知识简介
  5. hdfs复制文件夹_一文理解HDFS
  6. [ARM异常]-异常进入和异常退出时的arm core的硬件自动的行为
  7. 哪些CSS是可以被继承的--简单整理
  8. vue接收json数据_Vue之使用ajax获取json数据,并用v-for循环显示在表格中
  9. Linux下ACE、xml解析库开发环境搭建
  10. [Ext JS]treelist实现tooltip
  11. 【体系结构】共享SQL的理解
  12. 中国移动:2016年全力推NFC,以公共交通为突破口
  13. redis 内存管理分析
  14. html表格内容自动更新,ElementUI table 组件展开 expand,动态更新数据时,视图没有自动更新...
  15. oracle14 jar的pom,MyEclipse环境下如何采用Maven导入ojdbc14.jar和ojdbc6.jar | 贝壳里的海...
  16. Java实体映射工具:MapStruct
  17. sketch插件 android,用这个免费的 Sketch 插件,帮你完美还原安卓界面!
  18. 小程序地图定位,打开地图导航,选择位置
  19. 基于JSP+Mysql java教师教学质量测评系统
  20. 什么是数学建模?如何在数学建模中拿奖?通过建模学到了啥?

热门文章

  1. word中文分词 一
  2. 模型评估指标 AUC 和 ROC,这是我看到的最透彻的讲解
  3. 计算机趣事 英语作文,英语作文关于趣事
  4. SSH整合过程中遇到的头秃问题
  5. 多个FPGA之间PLL输出时钟的同步
  6. 【Matlab】如何绘制errorbar误差棒
  7. r语言c()函数格式,R语言基本操作函数
  8. 两片74161实现60进制_74LS161设计60进制计数器-数电课程设计
  9. 一款个性、实用、无痕的浏览器(大学生的最爱)
  10. Mysql之group by 和order by 一起用时的排序问题