作用

在文件或标准输入中,通过正则表达式查找对应的内容

语法格式

grep [选项]... PATTERN [FILE]...

grep的常用选项参数

参数选项 描述
-G 默认值
-F 相当于使用fgrep,但必须用 -F
-E 相当于使用egrep,但必须用 -E
-V 打印 grep 的版本号

-E 的栗子

前提

当 grep 想同时过滤多个条件或操作

错误写法

默认不支持多条件匹配

ps -ef | grep "java|tomcat"

正确写法

ps -ef | grep -E "java|tomcat"

匹配控制选项参数

参数选项 描述
-e PATTERN 来进行匹配操作
-f 从文件中取得 PATTERN
-i 忽略大小写
-v 反转匹配,选择没有被匹配到的内容
-w 匹配整词,精确地单词,单词的两边必须是非字符符号(即不能是字母数字或下划线)
-x 仅选择与整行完全匹配的匹配项
--line-buffered 有一个文件是动态的,它不断地添加信息到文件的尾部,而你想要输出包含某些信息的行。即持续的grep一个动态的流

-e 的栗子

当你有多个正则表达式想同时匹配时,可以用 -e,一个 -e 接一个正则表达式,它们是或的关系,不是与的关系

-f 的栗子

-i 的栗子

-v 的栗子

-w 的栗子

-x 的栗子

一般输出控制选

参数选项 描述
-s 禁止显示错误信息
-q 安静模式,不会有任何输出内容,查找到匹配内容会返回0,未查找到匹配内容就返回非0
-m num 匹配 num 次后停止
-c 匹配成功数量
-l 列出匹配成功结果的文件来源(标准输入或文件名称)
-H 给每一个匹配结果打印来源(标准输入、文件名)

-q

目前没发现有什么用

-m 的栗子

-c 的栗子

-l 的栗子

ls 输出的内容就是标准输入

输出控制参数讲解

参数选项 描述
-b 输出的同时打印字节偏移
-n 输出的同时打印行号
-H 给每一个匹配结果打印来源(标准输入、文件名)
-h 输出是不显示来源(默认)
-o 只显示匹配 PATTERN 的部分

-b 的栗子

-n 的栗子

-H 的栗子

因为结果都来源于 ls 的标准输入,所以显示标准输入,如果是来源于某个文件则会显示文件名

-o 的栗子

上下文线控制选项

参数选项 描述
-A num 匹配到搜索到的行以及该行下面的num行
-B num 匹配到搜索到的行以及该行上面的num行
-C num 匹配到搜索到的行以及上下各num行

备注

感觉就是为了好看而已

-A 的栗子

-B 的栗子

-C 的栗子

文件和目录选项

参数选项 描述
-a 不忽略二进制的数据
-d 当要查找的是目录而非文件时,必须使用这项参数
-r 以递归方式读取每个目录下的所有文件; 这相当于-d recurse选项。

-r 的栗子

巨常用的语法

重点

写的正则表达式最好用 '' 包起来,当碰到需要转义符的时候才会生效

查找指定进程

ps -ef | grep java

查找指定进程并统计数量

ps -ef | grep -c java

从文件中查找关键字

grep src test.txt

从文件中查找关键字并输出它的行号

grep -n src test.txt

从多个文件中查找关键字

grep src src.txt src1.txt src2.txt

从文件中查找关键字后,再从结果中找到指定关键字

cat src.txt | grep -v s | grep -w lib

找出文件中的空白行

grep -n ^$ test.txt

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

grep -n '[a-z]\{4\}' *.txt

待补充

Linux 三剑客(1)- grep的更多相关文章

  1. (转)不看绝对后悔的Linux三剑客之grep实战精讲

    不看绝对后悔的Linux三剑客之grep实战精讲 原文:http://blog.51cto.com/hujiangtao/1923675 https://www.cnblogs.com/peida/a ...

  2. Linux 三剑客之grep

    目录 Linux 三剑客之grep 搭配命令-find 三剑客之grep: 正则表达式: Linux 三剑客之grep 搭配命令-find find命令是根据文件的名称或者属性查找文件,并不会显示文件 ...

  3. linux三剑客之grep

    linux基础三剑客之grep 1.grep命令 基本介绍 grep命令是文本本过滤工具,是基于一个模式匹配文件的每一行,grep分类:egrep个fgrep. grep英文名:Global  sea ...

  4. Linux三剑客之grep常用参数详细总结

    三剑客grep总结 grep  : Linux三剑客老三      过滤需要的内容 参数: grep一般常用参数: -a :在二进制文件中,以文本文件的方式搜索数据 -c :计算找到 ’ 搜索字符串 ...

  5. Linux三剑客老三---grep

    1.Linux三剑客老三 过滤需要的内容,例子:grep -v oldboy hello.txt grep一般常用参数: -a:在二进制文件中,以文本文件的方式搜索数据. -c:计算找到"搜 ...

  6. Linux三剑客之grep 与 egrep

    grep: Linux上文本处理三剑客 grep:文本过滤(模式:pattern)工具; *(grep, egrep, fgrep) sed:stream editor,文本编辑工具: awk:Lin ...

  7. linux三剑客之一grep

    正则表达式(Regular Expression) 目录 起源 正则表达式是什么? 两类基本正则表达式 正则表达式元字符 Linux上文本三剑客 小试牛刀 总结 一.起源   正则表达式这个名词,相信 ...

  8. Linux三剑客:grep、awk、sed

    ---------------------------------------------------------------------------------------------------- ...

  9. Linux 三剑客之 grep 使用详解

    Linux 最重要的三个命令在业界被称为三剑客,它们是:awk.sed.grep.sed 已经在上篇中讲过,本文要讲的是 grep 命令. 我们在使用 Linux 系统中,grep 命令的使用尤为频繁 ...

  10. linux 三剑客命令(grep,sed ,awk)

    grep 命令 :强大的文本’搜索’工具    1.grep   -n   'word'  file_name 在file_name文件中找到word所在的所有行并显示.-n 为显示行号.     2 ...

随机推荐

  1. 微信JSSDK的使用步骤

    步骤一:绑定域名 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名".(登录后可在"开发者中心" ...

  2. 异地远程访问群晖NAS中的文件

    异地远程访问群晖NAS中的文件   我以群晖DS720+网络存储服务器为例,介绍我是如何异地远程访问群晖NAS中的文件的.   此文章只介绍部署操作的大概步骤,具体的操作方法和技巧可以在西瓜视频.抖音 ...

  3. AHKManager.ahk AHK管理器 2019年12月15日

    AHKManager.ahk  AHK管理器  2019年12月15日 快捷键   {Alt} + {F1} ///////////////////////////////////////////// ...

  4. Python RPC 不会?不妨看看这篇文章

    1. 前言 大家好,我是安果! RPC,全程为 Remote Procedure Call,是一种进程间的通信方式,它采用「 服务端 / 客户机 」模式,是一种请求响应模型 其中,服务端负责提供服务程 ...

  5. shell的图形排列

    目录 一.矩形 二.直角三角形 三.倒直角三角形 四.靠右的直角三角形 五.等腰三角形 六.平行四边形 七.等腰梯形 八.菱形 九.可变动菱形 一.矩形 二.直角三角形 三.倒直角三角形 四.靠右的直 ...

  6. 2020年!最全Android大厂面试真题合集(附答案)

    这份Android面试真题涵盖了图片,网络和安全机制,网络,数据库,插件化.模块化.组件化.热修复.增量更新.Gradle,架构设计和设计模式,Android Framework .Android优秀 ...

  7. dubbo学习实践(2)之Dubbo入门Demo

    开篇之前,先来了解下dubbo服务治理与技术架构,直接看图 dubbo技术架构图: 1. 新建dubbo项目,目录结构如下 代码说明: 1.代码分为Provider(服务提供方)与consumer(服 ...

  8. Java-ThreadPool线程池总结

    ThreadPool 线程池的优势 线程池做的工作主要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出的线程排队等候,等待其他线程执行完毕 ...

  9. Qt开发Gif播放器

    一.资源下载地址 https://www.aliyundrive.com/s/jBU2wBS8poH 本项目路径:项目->免费->Gif播放器(包含整个工程源码,vs2019打开即可编译运 ...

  10. Pikachu-Over Permission模块

    一.概述 如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作. 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的. 一般越权漏洞容易出现在权限页 ...