Linux 三剑客(1)- grep
作用
在文件或标准输入中,通过正则表达式查找对应的内容
语法格式
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的更多相关文章
- (转)不看绝对后悔的Linux三剑客之grep实战精讲
不看绝对后悔的Linux三剑客之grep实战精讲 原文:http://blog.51cto.com/hujiangtao/1923675 https://www.cnblogs.com/peida/a ...
- Linux 三剑客之grep
目录 Linux 三剑客之grep 搭配命令-find 三剑客之grep: 正则表达式: Linux 三剑客之grep 搭配命令-find find命令是根据文件的名称或者属性查找文件,并不会显示文件 ...
- linux三剑客之grep
linux基础三剑客之grep 1.grep命令 基本介绍 grep命令是文本本过滤工具,是基于一个模式匹配文件的每一行,grep分类:egrep个fgrep. grep英文名:Global sea ...
- Linux三剑客之grep常用参数详细总结
三剑客grep总结 grep : Linux三剑客老三 过滤需要的内容 参数: grep一般常用参数: -a :在二进制文件中,以文本文件的方式搜索数据 -c :计算找到 ’ 搜索字符串 ...
- Linux三剑客老三---grep
1.Linux三剑客老三 过滤需要的内容,例子:grep -v oldboy hello.txt grep一般常用参数: -a:在二进制文件中,以文本文件的方式搜索数据. -c:计算找到"搜 ...
- Linux三剑客之grep 与 egrep
grep: Linux上文本处理三剑客 grep:文本过滤(模式:pattern)工具; *(grep, egrep, fgrep) sed:stream editor,文本编辑工具: awk:Lin ...
- linux三剑客之一grep
正则表达式(Regular Expression) 目录 起源 正则表达式是什么? 两类基本正则表达式 正则表达式元字符 Linux上文本三剑客 小试牛刀 总结 一.起源 正则表达式这个名词,相信 ...
- Linux三剑客:grep、awk、sed
---------------------------------------------------------------------------------------------------- ...
- Linux 三剑客之 grep 使用详解
Linux 最重要的三个命令在业界被称为三剑客,它们是:awk.sed.grep.sed 已经在上篇中讲过,本文要讲的是 grep 命令. 我们在使用 Linux 系统中,grep 命令的使用尤为频繁 ...
- linux 三剑客命令(grep,sed ,awk)
grep 命令 :强大的文本’搜索’工具 1.grep -n 'word' file_name 在file_name文件中找到word所在的所有行并显示.-n 为显示行号. 2 ...
随机推荐
- Java代码中,如何监控Mysql的binlog?
最近在工作中,遇到了这样一个业务场景,我们需要关注一个业务系统数据库中某几张表的数据,当数据发生新增或修改时,将它同步到另一个业务系统数据库中的表中. 一提到数据库的同步,估计大家第一时间想到的就是基 ...
- Spring Boot实现数据访问计数器
1.数据访问计数器 在Spring Boot项目中,有时需要数据访问计数器.大致有下列三种情形: 1)纯计数:如登录的密码错误计数,超过门限N次,则表示计数器满,此时可进行下一步处理,如锁定该账户 ...
- Flutter开发进阶学习指南Flutter开发进阶学习指南
Flutter 的起源 Flutter 的诞生其实比较有意思,Flutter 诞生于 Chrome 团队的一场内部实验, 谷歌的前端团队在把前端一些"乱七八糟"的规范去掉后,发现在 ...
- 谈谈网络协议 - 数据链路层( Data Link)
数据链路层( Data Link) 链路:从1个节点到相邻节点的一段物理线路(有线或无线),中间没有其他交换节点 案例 上图可以看出,总共由5条链路组成: 第1条:计算机0 => 路由器0,使用 ...
- 数据增广imgaug库的使用
记录一下这两天用imgaug库做数据增广的代码,由于是算用算学的,所以只能把代码写出来,具体每种增广算法的原理和一些参数就不得而知了,不过我觉得也没必要把这么些个算法搜搞懂,毕竟重点是扩种数据.所以, ...
- WPF MVVM模式下路由事件
一,路由事件下三种路由策略: 1 冒泡:由事件源向上传递一直到根元素.2直接:只有事件源才有机会响应事件.3隧道:从元素树的根部调用事件处理程序并依次向下深入直到事件源.一般情况下,WPF提供的输入事 ...
- 常见web中间件漏洞(五)weblogic漏洞
继续整理有关中间件漏洞思路(仅做简单思路整理,不是复现,复现请参考大佬们的长篇好文,会在文章中列举部分操作) WebLogic是Oracle公司出品的一个application server,确切的说 ...
- 并发编程 Process 互斥锁
进程理论 程序与进程的区别 ''' 程序不是存在硬盘上的代码,相对来说是静态的 进程表示程序在执行的过程,是动态的 ''' 进程的调度 先来先服务调度算法 '''对长作业有利,对短作业无益''' 短作 ...
- SpringBoot快速入门(一)
本文内容 SpringBoot概述 SpringBoot快速入门 SpringBoot起步依赖原理分析 SpringBoot配置 SpringBoot整合其他框架 1.SpringBoot概述 1.1 ...
- Linux第一个动态库
动态库一般以.so结尾,就是shared object的意思. 其基本生成步骤为 ⑴编写函数代码 ⑵编译生成动态库文件,要加上 -shared 和 -fpic 选项 , 库文件名以li ...