grep命令

grep命令grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来;grep搜索的结果被送到屏幕,不影响原文件内容。Unix的grep家族包括grep、egrep和fgrep。egrep表示扩展的grep,相比grep支持更多的元字符,"grep -E"相当于egrep;fgrep不支持元字符,但是搜索速度更快。

用法: grep [OPTIONS] PATTERN [FILE…]

    grep [OPTIONS] [-e PATTERN | -f FILE] [FILE…]

常用选项:

-v:显示不能被pattern匹配到的行

例如:不显示/etc/fstab文件的注释信息:

~]# grep -v "^#" /etc/fstab
UUID=a87091f4-347b-41da-9983-a8f193e1206e /                    ext4    defaults        1 1
UUID=d0bb97dd-0370-4e9f-bb38-ecf580b2761c /boot                ext4    defaults        1 2
UUID=77fc1474-4b1d-4e28-be0a-e81dd21bef19 swap                 swap    default

-i:忽略字符大小写

-n:显示匹配行号

-c:统计匹配行数

-o:仅显示匹配到的字符串

例如:查找/etc/fstab文件中的“defaults”关键字

~]# grep -o "defaults" /etc/fstab
defaults
defaults
defaults
defaults
defaults
defaults

-A NUM:显示后NUM行

例如:显示匹配到“ext4”的后两行

~]# grep -n -A2 "ext4" /etc/fstab
9:UUID=a87091f4-347b-41da-9983-a8f193e1206e /                     ext4    defaults        1 1
10:UUID=d0bb97dd-0370-4e9f-bb38-ecf580b2761c /boot                 ext4    defaults        1 2
11-UUID=77fc1474-4b1d-4e28-be0a-e81dd21bef19 swap                  swap    defaults        0 0
12-tmpfs                   /dev/shm              tmpfs   defaults        0 0

-B NUM:显示前NUM行

-C NUM:前后各NUM行

例如:显示匹配到“ext4”的前后各一行

~]# grep -n -C1 "ext4" /etc/fstab
8-#
9:UUID=a87091f4-347b-41da-9983-a8f193e1206e /                     ext4    defaults        1 1
10:UUID=d0bb97dd-0370-4e9f-bb38-ecf580b2761c /boot                 ext4    defaults        1 2
11-UUID=77fc1474-4b1d-4e28-be0a-e81dd21bef19 swap                  swap    defaults        0 0

-q:不显示任何信息

-w:显示匹配到字符串的行

例如:查找/etc/fstab文件中有“defaults”关键字的行

~]# grep -w "defaults" /etc/fstab
UUID=a87091f4-347b-41da-9983-a8f193e1206e /                     ext4    defaults        1 1
UUID=d0bb97dd-0370-4e9f-bb38-ecf580b2761c /boot                 ext4    defaults        1 2
UUID=77fc1474-4b1d-4e28-be0a-e81dd21bef19 swap                  swap    defaults        0 0
tmpfs                   /dev/shm              tmpfs   defaults        0 0
sysfs                   /sys                  sysfs   defaults        0 0
proc                    /proc                 proc    defaults        0 0

-e:实现多个选项的逻辑“或”关系

例如:在/etc/fstab文件中查找“ext4”或者“swap”关键字

~]# grep -e "ext4" -e "swap" /etc/fstab
UUID=a87091f4-347b-41da-9983-a8f193e1206e /                     ext4    defaults        1 1
UUID=d0bb97dd-0370-4e9f-bb38-ecf580b2761c /boot                 ext4    defaults        1 2
UUID=77fc1474-4b1d-4e28-be0a-e81dd21bef19 swap                  swap    defaults        0 0

          -E:使用扩展正则表达式,相当于egrep

原创文章,作者:yilianrenzhendemenbi,如若转载,请注明出处:http://www.178linux.com/30792

(0)
yilianrenzhendemenbiyilianrenzhendemenbi
上一篇 2016-08-08 16:11
下一篇 2016-08-08 16:11

相关推荐

  • 8月22日shell脚本编程之循环和函数

    shell脚本编程 本章内容 编程基础 脚本基本格式 变量 运算 条件测试 流程控制 函数 数组 高级字符串操作 高级变量 配置用户环境 编程基础 程序:指令+数据 编程程序风格:   过程式:以指令为中心,数据服务于指令   对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方…

    Linux干货 2016-08-24
  • grup修复与安装操作介绍

    一、bgru Stage1的安装     1、stage1存储在MBR的前446字节,首先破坏。使用dd命令     2、使用grub-install命令安装修复grub stage1     3、使用grub命令修复 二、进入救援模式,修改grub     1、先破坏grub …

    Linux干货 2016-06-03
  • linux 网路管理路由和team网络组

    如何实现把linux当路由器来使用,实现不同网段之间的通信访问,这就是今天所要实现的路由配置   环境准备:4台虚拟机,两台中间两台作为路由器来使用(每天主机两块网卡),其他两台作为终端主机,目的是让不同网段的两台主机之间互相访问(这里在vmware里面做的实验,所以网卡的类型都设置为桥接)   拓扑图:   步骤一:将A、D两…

    Linux干货 2017-05-07
  • 2016全球运维大会,优云蒋君伟演讲“CMDB+自动化的管理融合”成一大亮点

    2016全球运维大会于9月23日-24日在上海盛大开幕。作为国内运维行业的重量级大会,优云产品总监蒋君伟在自动化专场与来自全国各地的运维同行一起探讨、分享业内自动化运维的最佳实践。现场情绪热烈,气氛高涨,成为了本届全球运维大会的一大亮点。 全新梳理自动化与CMDB的融合之道 全球运维大会当天,运维自动化专场很多大牛针对自动化运维管理中的CMDB进行了激烈的讨…

    Linux资讯 2016-12-05
  • sed工具实践解析

    此次博文介绍一下文本处理三剑客中的sed工具(点击查看grep工具http://www.178linux.com/83512) 介绍sed: sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 运行过程: sed编辑器逐行处理文件,并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理…

    Linux干货 2017-08-26
  • 基于Redis的开源分布式服务Codis

    Redis在豌豆荚的使用历程——单实例==》多实例,业务代码中做sharding==》单个Twemproxy==》多个Twemproxy==》Codis,豌豆荚自己开发的分布式Redis服务。在大规模的Redis使用过程中,他们发现Redis受限于多个方面:单机内存有限、带宽压力、单点问题、不能动态扩容以及磁盘损坏时的数据抢救。 Redis通常有3个使用途径…

    Linux干货 2015-02-25