一、命令介绍

  grep命令是文本搜索命令,它可以正则表达式搜索文本,也可从一个文件中的内容作为搜索关键字。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
语法:
grep [option] pattern file

二、使用示例

1、查找某文件的指定内容,并显示行号

(base) [root@test1 ~]# grep -n wuhs test.sh
4:作者1=wuhs
5:作者1=wuhs
9:author1=wuhs

2、过滤管道输入匹配关键字内容

(base) [root@test1 ~]# ll -h |grep test
-rw-r–r–. 1 root root 69 Jan 17 06:17 test2.sh
-rw-r–r–. 1 root root 112 Jan 17 06:09 test.sh

3、查找指定进程的个数

(base) [root@test1 ~]# ps -ef |grep -c docker
5

4、从文件中读取关键词进行搜索

(base) [root@test1 ~]# cat test
author
作者
(base) [root@test1 ~]# grep -f test -n test.sh
4:作者1=wuhs
5:作者1=wuhs
7:#作者2=sunru
8:#作者3=ziyue
9:author1=wuhs

5、从多个文件中查找关键词

(base) [root@test1 ~]# grep wuhs test.sh test2.sh
test.sh:作者1=wuhs
test.sh:作者1=wuhs
test.sh:author1=wuhs
test2.sh:作者1=wuhs
test2.sh:作者1=wuhs

6、不区分大小查询

(base) [root@test1 ~]# grep -i wuhs test.sh
作者1=wuhs
作者1=wuhs
author1=wuhs
author2=Wuhs

7、grep不显示本身进程

(base) [root@test1 ~]# ps -ef |grep kworker |grep -v grep
root 5 2 0 Jan16 ? 00:00:00 [kworker/0:0H]
root 2905 2 0 Jan16 ? 00:00:01 [kworker/0:1H]
root 80922 2 0 Jan18 ? 00:00:03 [kworker/u256:0]
root 93902 2 0 Jan18 ? 00:00:01 [kworker/u256:2]
root 99985 2 0 04:36 ? 00:00:03 [kworker/0:0]
root 100759 2 0 05:56 ? 00:00:01 [kworker/0:2]
root 101014 2 0 06:21 ? 00:00:00 [kworker/0:3]
root 101070 2 0 06:26 ? 00:00:00 [kworker/0:1]

8、查找匹配关键字开头的行

(base) [root@test1 ~]# grep ^author test.sh
author1=wuhs
author2=Wuhs

9、查找匹配关键字结尾的行

(base) [root@test1 ~]# grep uhs$ test.sh
作者1=wuhs
作者1=wuhs
author1=wuhs
author2=Wuhs
(base) [root@test1 ~]# grep Wuhs$ test.sh
author2=Wuhs

10、查找匹配关键字的行及前N行

[root@s142 tmp]# cat shi.txt |grep -B2 “王维”

11、查找匹配关键字的行及后N行

[root@s142 tmp]# cat shi.txt |grep -A2 “王维”
[作者] 王维 [朝代] 唐
渭城朝雨浥轻尘,客舍青青柳色新。劝君更尽一杯酒,西出阳关无故人。
小池

12、查找匹配关键字的行及前后N行

[root@s142 tmp]# cat shi.txt |grep -C2 “王维”
与君歌…
送元二使安西
[作者] 王维 [朝代] 唐
渭城朝雨浥轻尘,客舍青青柳色新。劝君更尽一杯酒,西出阳关无故人。
小池

13、查找匹配多个关键字的行

[root@s142 tmp]# cat shi.txt |grep -E “王维|李白”
[作者] 李白 [朝代] 唐
[作者] 李白 [朝代] 唐
[作者] 王维 [朝代] 唐

三、参数说明

  用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。
-a --text #不要忽略二进制的数据。
-A 显示匹配行及后面多少行, 如: -A3, 则表示显示匹配行及后3行。
-b --byte-offset #在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B 显示匹配行及前面多少行, 如: -B3, 则表示显示匹配行及前3行。
-c --count #计算符合样式的列数。
-C 显示匹配行前后多少行, 如: -C3, 则表示显示批量行前后3行。
-d <动作> --directories=<动作> #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> --regexp=<范本样式> #指定字符串做为查找文件内容的样式。
-E --extended-regexp #将样式为延伸的普通表示法来使用。
-f<规则文件> --file=<规则文件> #指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F --fixed-regexp #将样式视为固定字符串的列表。
-G --basic-regexp #将样式视为普通的表示法来使用。
-h --no-filename #在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H --with-filename #在显示符合样式的那一行之前,表示该行所属的文件名称。
-i --ignore-case #忽略字符大小写的差别。
-l --file-with-matches #列出文件内容符合指定的样式的文件名称。
-L --files-without-match #列出文件内容不符合指定的样式的文件名称。
-n --line-number #在显示符合样式的那一行之前,标示出该行的列数编号。
-q --quiet或–silent #不显示任何信息。
-r --recursive #此参数的效果和指定“-d recurse”参数相同。
-s --no-messages #不显示错误信息。
-v --revert-match #显示不包含匹配文本的所有行。
-V --version #显示版本信息。
-w --word-regexp #只显示全字符合的列。
-x --line-regexp #只显示全列符合的列。
-y #此参数的效果和指定“-i”参数相同。
–color: 匹配到的内容高亮显示
–include: 指定匹配的文件类型
–exclude: 过滤不需要匹配的文件类型

四、正则表达式说明

^ #锚定行的开始 如:'^grep’匹配所有以grep开头的行。
$ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
. #匹配一个非换行符的字符 如:'gr.p’匹配gr后接一个任意字符,然后是p。

  • #匹配零个或多个先前字符 如:‘grep’匹配所有一个或多个空格后紧跟grep的行。
    .
    #一起用代表任意字符。
    [] #匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep。
    [^] #匹配一个不在指定范围内的字符,如:‘[^A-FH-Z]rep’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
    (…) #标记匹配字符,如’(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],如:'G\w*p’匹配以G后跟零个或多个文字或数字字符,然后是p。
    \W #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
    \b #单词锁定符,如: '\bgrep\b’只匹配grep。

Linux命令之grep命令相关推荐

  1. Linux中利用grep命令如何检索文件内容详解

    前言 Linux系统中搜索.查找文件中的内容,一般最常用的是grep命令,另外还有egrep命令,同时vi命令也支持文件内容检索.下面来一起看看Linux利用grep命令检索文件内容的详细介绍. 方法 ...

  2. Linux下的grep命令

    Linux下的grep命令 作用:grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来.若不指定任何文件名 ...

  3. linux命令之grep 命令

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

  4. linux使用grep查找文件内容,Linux中使用grep命令搜索文件名及文件内容的方法

    这篇文章主要介绍了Linux中使用grep命令搜索文件名及文件内容的方法,同时文中还介绍了将匹配结果高亮显示的方法,相当实用,需要的朋友可以参考下 从文件中搜索并显示文件名 当从多个文件中搜索时,默认 ...

  5. linux下grep同时匹配多个单词,Linux下使用grep命令搜索多个单词的方法

    摘要 腾兴网为您分享:Linux下使用grep命令搜索多个单词的方法,篆刻字典,中国知网,虚拟机,微博等软件知识,以及掌上公交app,尚书ocr,汇博企业,强密码,支付宝,mh,海融易,我的世界火影忍 ...

  6. Unix/Linux 中的 grep 命令

    Unix/Linux 中的 grep 命令参数及示例用法 作用 语法 主要参数 示例命令 作用 Grep 筛选器在文件中搜索特定的字符模式,并显示包含该模式的所有行.在文件中搜索的模式称为 正则表达式 ...

  7. Linux下的grep命令详解

    grep命令 使用grep命令可以查找文件内符合条件的字符串. 命令语法: grep [选项] [查找模式][文件] 命令中各选项的含义如表所示. 表                          ...

  8. 【Linux】使用grep命令查找文件内容

    文章目录 grep简介 grep语法 grep常用选项 示例 模式匹配 grep命令使用简单实例 grep命令使用复杂实例 cat/more/tail 与 grep组合使用 grep简介 grep是l ...

  9. Linux三剑客之grep命令详解及相关实例

    grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用 ...

最新文章

  1. SharePoint 2016 必备组件离线安装介绍
  2. Maven settings.xml配置详解
  3. freemarker自定义标签(二十一)
  4. ORACLE 配置文件
  5. Nginx 反向代理 websocket 协议
  6. cad在线转低版本_【设计专业干货】史上最齐全的CAD大全
  7. java中的集合_你真的了解Java中的集合类么?
  8. C语言实现飞机订票系统
  9. Centos7 64位镜像下载
  10. 武汉工程大学计算机学院吴云韬,周华兵-武汉工程大学计算机科学与工程学院...
  11. Bug 引发的 18 次重大事故
  12. QQ登录界面(Java)
  13. 牧云Webshell检测神器
  14. 基于PTB数据集实现RNN-LSTM循环神经网络(智能填词)
  15. 【Java】 实现一个简单文件浏览器(1)
  16. 2019上海埃森哲软件开发面试
  17. 校招基本告一段落,总结一下
  18. python在windows command下打印中文出错 IOError [Errno 22] Invalid argument
  19. 数据流图、数据流程图、程序流程图的区别与联系
  20. mysql创建外键级联更新_MySQL使用外键实现级联删除与更新的方法

热门文章

  1. java image 透明_Java 生成半透明照片
  2. 利用笔记本电脑和串口转换器登录树莓派
  3. VJC案例-填字游戏
  4. 电脑连接电视的方法——HDMI篇(图文详解)
  5. 玩 Lin UI 搞小程序之:用步骤条组件做个时间简史
  6. 初中计算机教师资格证内容,教师资格证考试大纲——《信息技术学科知识与教学能力》(初级中学)...
  7. js php 实现日历签到_基于jquery实现日历签到功能_jquery
  8. 管道符号 | 的作用 (Python举例)
  9. qchart画完以后删除_项晓桐 | 二战江南大学视传设计考研狂揽400+ “不仅仅是看画的好看,对于创意点老师也是很在乎的”...
  10. LMT NEW PBS作业排队计算系统的调度算法