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

相关推荐

  • 抓包获取QQ好友IP地址

    作者:网海过客 原文连接:https://www.chinasa.net/archives/326.html 原理:通过抓包软件,抓取QQ进程,向QQ好向发送UDP数据包,获取QQ好友IP地址 抓包软件:科来网络分析系统 步骤: 1、打开抓包软件,选择网卡,本地进程分析。 2、向QQ好友发起语音通话 3、在抓包软件里,找到QQ进程,数据包,过滤UDP协议,在…

    Linux干货 2017-06-30
  • linux-系统启动和内核管理

    一、Linux 组成及启动过程 Linux: kernel+rootfs    kernel:进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能      IPC:Inter Process Communication  &nbsp…

    Linux干货 2016-09-26
  • PHP通过Thrift操作Hbase

    HBase是一个开源的NoSQL产品,它是实现了Google BigTable论文的一个开源产品,和Hadoop和HDFS一起,可用来存储和处理海量column family的数据。官方网址是:http://hbase.apache.org 一 、HBase访问接口 1.  Native Java API,最常规和高效的访问方式,适合Hadoop …

    Linux干货 2015-05-18
  • MySQL or MariaDB 简介

    DBMS:数据库管理系统 RDBMS:关系型数据库管理系统    总之:他们都是一个数据管理程序;大多都是CS架构,都有专门的通信协议进行数据交换 关系模型:               表(行或者列):二维关系 设计范式:       &…

    Linux干货 2017-01-12
  • Linux文件属性及如何修改文件属性

    ls -al:显示文件的文件名与相关属性并列出所有文件详细的权限与属性   dr-xr-x—.   7       root     root       4…

    2017-04-03
  • LVM详解

    目录:  一、概述  二、LVM的相关概念  三、概念图  四、LVM基本操作    1.创建PV    2.查看PV信息    3.创建VG    4.查看VG信息    5.创建LV    6.查…

    Linux干货 2015-09-22