grep

♦参数

-E,--extended-regexp              模式是扩展正则表达式
-i,--ignore-case 忽略大小写
-n,--line-number 打印行号
-v,--invert-match 打印不匹配的行
-o,--only-matching 只打印匹配的内容
-m,--max-count=NUM   输出匹配的结果 num 数
-c,--count 只打印每个文件匹配的行数
-r,--recursive 递归目录
-w,--word-regexp 模式匹配整个单词
--include=FILE_PATTERN 只检索匹配的文件

♦示例

1.过滤b文件中与a文件相同的行

[root@gitlab grep]# cat a.txt
12345
54321
[root@gitlab grep]# cat b.txt
12345
678910
12345
[root@gitlab grep]# grep -f a.txt b.txt
12345
12345
[root@gitlab grep]# grep -f b.txt a.txt
12345
[root@gitlab grep]#

2.过滤b文件中与a文件不同的行

[root@gitlab grep]# grep -v -f a.txt b.txt
678910

3.匹配出去空行和以#开头的行

[root@gitlab grep]# grep -E -v "^$|^#" /etc/fstab

4.精确匹配

[root@gitlab grep]# echo ” this is a test“ | egrep -w -o 'is'
is

-w 匹配到整个单词 -o 输出匹配到的单词

5.输出匹配的前五个结果

[root@gitlab grep]# seq 1 20 | grep -E -m 5 [0-9]{2}
10
11
12
13
14

6.统计匹配多少行

[root@gitlab grep]# seq 1 20 | grep -c -E '[0-9]{2}'
11

7.匹配以b开头的行

# echo "a bc de" |xargs -n1 |grep '^b'

8.匹配de字符结尾的行,并输出匹配的行号

echo "a ab abc abcd abcde" |xargs -n1 |grep -n 'de$'

9.

→递归搜索/etc目录下包含UUID的所有文件

[root@gitlab grep]# grep -r 'UUID' /etc --include \*

→递归搜索/etc 目录下包含 ip 的 conf 后缀文件

[root@gitlab grep]# grep -r '192.167.1.1' /etc --include *.conf
/etc/ip.conf:192.167.1.1

10.匹配所有IP

[root@gitlab shell]# ifconfig |grep -E -w -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"

11.杂谈

grep [^#] /data/zabbix/etc/zabbix_server.conf
匹配除了#以外任意的字符
grep ^[^#] /data/zabbix/etc/zabbix_server.conf
过滤出来不是以#开头的行

Shell 文本处理三剑客之grep的更多相关文章

  1. shell 文本处理三剑客之 grep 和 egrep

    shell 三剑客之 grep 命令语法格式 grep 参数 案例 显示file中有python的行 grep python file 显示没有python的行,不忽略大小写 grep -v pyth ...

  2. Linux文本处理三剑客之grep及正则表达式详解

    Linux文本处理三剑客之grep及正则表达式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux文本处理三剑客概述 grep: 全称:"Global se ...

  3. Linux文本处理三剑客之——grep

    一Linux文本处理三剑客之——grep Linux文本处理三剑客都支持正则表达式 grep :文本过滤( 模式:pattern) 工具,包括grep, egrep, fgrep (不支持正则表达式) ...

  4. 文本处理三剑客之 grep

    grep简介 grep(Global search REgular expression and Print out the line)是Linux上的文本处理三剑客之一,另外两个是sed和awk. ...

  5. Linux 文本处理三剑客之grep

    文本处理都要使用正则表达式,正则表达式有: 基本正则表达式:grep或者egrep -G 扩展正则表达式:egreo或者grep -E Linux 文本处理三剑客: sed:stream editor ...

  6. 文本处理三剑客之grep&正则表达式

    grep是一个文本过滤工具,它支持正则表达式,能把搜索匹配到的行打印出来.grep的全称是Global Regular Expression Print(全局正则表达式)使用权限是所有用户. 一.gr ...

  7. linux文本处理三剑客之 grep

    文本处理无非是对文本内容做查看.修改等操作.Linux三剑客: grep.sed 和 awk 命令. 处理文本内容,用 Vim 编辑器不是很好吗?Vim 允许我们使用键盘.鼠标来对文本内容进行交互性地 ...

  8. Linux文本处理三剑客之grep

    简介 grep命令,用于在一个文本文件中或者从STDIN中,根据用户给出的模式(pattern)过滤出所需要的信息. grep以及三剑客中的另外两个工具sed和awk都是基于行处理的,它们会一行行读入 ...

  9. 文本处理三剑客之 grep/egrep

    grep:文本过滤工具 支持BRE egrep: 支持ERE fgrep: 不支持正则 作用:根据用户指定的“模式”,对目标文本逐行进行匹配检查,打印匹配到的行 模式:由正则表达式字符及文本字符所编写 ...

随机推荐

  1. input 属性为 number,maxlength不起作用如何解决?

    <input type="text"  maxlength="5" />   效果ok, 当 <input type="number ...

  2. 前端入门5-CSS弹性布局flex

    本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 声明 本系列文章内容全部梳理自以下四个来源: <HTML5权威指南> <JavaScript权威指南> MD ...

  3. 淘宝cnpm

    npm install -g cnpm --registry=https://registry.npm.taobao.org

  4. Java多线程面试题整理

    部分一:多线程部分: 1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速. ...

  5. 浅谈Kotlin(一):简介及Android Studio中配置

    浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言: 今日新闻:谷 ...

  6. Android6.0 源码修改之屏蔽导航栏虚拟按键(Home和RecentAPP)/动态显示和隐藏NavigationBar

    场景分析, 为了完全实现沉浸式效果,在进入特定的app后可以将导航栏移除,当退出app后再次将导航栏恢复.(下面将采用发送广播的方式来移除和恢复导航栏) ps:不修改源码的情况下,简单的沉浸式效果实现 ...

  7. 算法: 包含min函数的栈

    * @Description 包含min函数的栈* @问题:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)).* @思路: 1:Stack 类中的p ...

  8. AIOps 平台的误解,挑战及建议(中)— AIOps常见的误解

    本文篇幅较长,分为上,中,下,三个部分进行连载.内容分别为:AIOps 背景/所应具备技术能力分析(上),AIOps 常见的误解(中),挑战及建议(下). 前言 我大概是 5,6 年前开始接触 ITO ...

  9. JS json字符串转对象、对象转字符串

    JSON是javascript原生格式,在JavaScript中处理json数据不需要任何特殊的API或者工具包. JSON中,有两种结构:对象和数组. 在数据传输流中,json是以文本,即字符串的形 ...

  10. Linux中对逻辑卷进行扩容与缩小

    一.在扩容之前,先查看自己逻辑卷,卷组,物理卷的信息:(在上一篇的基础上:Linux中对逻辑卷的建立) 查看物理卷: # pvdisplay /dev/sdc1 查看卷组: vgdisplay /de ...