grep用法

一、前言

grep是功能强大的文本处理工具,全称:global search regular expression and print out the line,grep一行一行使用正则表达式匹配文本,之后对匹配到的文本整行显示(除非使用特定的选项取反,如 grep -v)。

二、grep用法

grep命令用法:        

   grep [OPTIONS] PATTERN [FILE…]

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

为了使用grep用法,我们不得不先简单学习下正则表达式

2.1、正则表达式用法

首先,我们要明白什么是正则表达式?所谓正则表达式就是使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。正则表达式由一些普通字符和元字符组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。

2.1.1、元字符用法

a:字符匹配

. 匹配任意单个字符 例如:grep roo. /etc/passwd
[] 匹配指定范围内的任意单个字符 例如:grep [ro] /etc/passwd
[^] 取反 例如:grep [^ro] /etc/passwd

b:次数匹配

* 匹配任意次数 例如: grep roo* /etc/passwd
\? 匹配其前面字符出现0或者1次 例如: grep roo\? /etc/passwd
\{m\} 匹配其前面字符出现m次 例如: grep ro\{2\} /etc/passwd
\{m,\} 匹配其前面字符最少出现m次 例如: grep ro\{2,\} /etc/passwd
\{m,n\} 匹配其前面字符最少出现m次,最多n次 例如: grep ro\{2,3\} /etc/passwd
\{0,n\} 匹配其前面字符最多n次 例如: grep ro\{0,2\} /etc/passwd

c:位置锚定匹配

^ 行首锚定符 例如:grep ^root /etc/passwd
$ 行尾锚定符 例如:grep shell$ /etc/passwd
\< 词首锚定符 例如:grep \<root /etc/passwd
\> 词尾锚定符 例如:grep shell\> /etc/passwd

d:分组

\(\) 分组,分组中模式匹配的内容可被引用 例如:grep \(root\).*\1 /etc/passwd

e:引用

\# 引用分组中第#个内容(#为数字) 例如:grep \(root\).*\1 /etc/passwd

2.2、grep常用的选项

-v 反向选择 例如:grep -v root /etc/passwd
-o 仅显示匹配的字符串本身,而非所在行 例如:grep -o root /etc/passwd
-i 忽略大小写 例如:grep -i root /etc/passwd
-E 支持使用扩展正则表达式 例如:grep -E (root).*\1 /etc/passwd
-A 后面n行 例如:grep -A 3 root /etc/passwd
-B 前面n行 例如:grep -B 3 mysql /etc/passwd
-C 前后各n行 例如:grep -C 3 mysql /etc/passwd

三、总结

grep用法其实并不难,难在正则表达式的使用,grep是非常强大的文本搜索工具,熟练使用grep工具有利于我们后续对文本文件的处理。

        

   

    



原创文章,作者:成吉思汗,如若转载,请注明出处:http://www.178linux.com/7190

(0)
成吉思汗成吉思汗
上一篇 2015-08-24
下一篇 2015-08-24

相关推荐

  • 常用linux命令小计(1)

    关于linux那些事儿—常用命令小结(1) 系统相关信息 Uname –m显示处理器的架构 Uname –r显示正在使用的内核版本 cat /proc/cpuinfo显示cpu的具体信息 cat /proc/version显示内核的版本 cat /proc/swaps显示哪些分区被使用 data显示系统日期 cal –y显示当年的日历 date 021920…

    Linux干货 2017-02-19
  • LVM2学习总结

    LVM2(Logical Volume Manager 2) 原理: 将底层的物理硬盘抽象地封装起来,以逻辑卷的方式呈现给上层应用,但对于文件系统而言,对LVM的操作与对硬盘分区的操作并无差别。 实现基础: Linux内核的Device mapper机制,将一个或多个底层块设备组织成一个逻辑设备 基本元素: PP(Physical Partition):物理…

    Linux干货 2016-08-22
  • vi编辑器

       vim编辑器是众多文件编辑软件中比较好的一个,也是使用最多 ,功能最强大的,提供了图形化界面。    Vi:类unix系统中默认的文本编辑器    Vim:vi编辑器的增强版本,习惯上也称vi。    作用:创建或修改文本文件,维护linux系统的各种配置文件 vim的使用…

    Linux干货 2016-08-15
  • LVM逻辑卷管理

    前言     通常情况下,在操作系统上新建了一个分区并在此分区创建文件系统后,该文件系统的大小就固定了。假如要增加此文件系统的大小,我们不得不添加一块硬盘并重新分区,创建文件系统,然后把原文件系统的数据完整复制过来。如果第二次分区时分配的空间太大,用不完又浪费该怎么办呢?重复此前的流程又将花费大量的时间,有没有更便捷的…

    Linux干货 2015-05-04
  • 路由器解析路由表

    1.定义——>选择最佳路径;他只完成发送到下一个路径上就结束,任务到达就撤了(就像快递员一样,当他将物件发往到下一个目的地,那他的任务就结束了)2.分类:主机路由、网络路由、默认路由3.每个路由记录由四项主要组成部分目标地址:主机IP、网络ID号、未知地址(0.0.0.0)子网掩码接口interface:从哪个口发往目标地址 网…

    2017-09-05
  • DNS原理详解

    1、DNS概述   domain name service  区域名称服务或者domain named system 区域名称系统,是互联网最基础的服务,分为正向域名解析(将域名解析为IP地址)和反向域名解析(将IP地址解析为域名)两部分。 2、bind   bind(Berkeley Internet Name Domain)…

    Linux干货 2016-08-26