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 11:14
下一篇 2015-08-24 18:28

相关推荐

  • 马哥教育网络21期+第六周练习博客

    马哥教育网络21期+第六周练习博客 请详细总结vim编辑器的使用并完成以下练习题     VIM编辑器:         vi:Visual Interface 文本编辑器    &nbsp…

    Linux干货 2016-08-05
  • Linux文本处理三剑客之grep

    一、grep命令 grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行。 模式:由正则表达式字符及文本字符所编写的过滤条件 二、grep命令格式 grep [OPT…

    Linux干货 2016-08-15
  • 程序包管理:rpm和yum

    rpm命令                              软件包管理 程序包管理 一、概述 (一)API:Application Program Interface  应用编程接口 ABI…

    Linux干货 2016-08-21
  • Linux文件管理及bash脚本特性

    马哥教育网络班23期+第2周课程练习 Linux文件管理及bash脚本特性 概述,经过前三天的学习,想必我们已经对Linux 有了一个初步的了解,接下来这讲我们要讲述一下Linux至关重要的文件管理和bash脚本特性等知识要点 一、Linux 文件管理 1.1 原理概述   文件管理对于Linux系统来说至关重要,因为Linux 的哲学思想就是一切…

    Linux干货 2016-09-19
  • lvs集群学习笔记之原理

    lvs集群学习笔记之原理 lvs集群学习笔记之原理 集群 负载均衡 lvs 原理 lvs集群学习笔记之原理 什么是集群 什么是负载均衡 负载均衡解决方案 lvs简介 lvs内核空间模型 lvs特点 lvs实现方式 lvs实现方式之nat模型 lvs实现方式之dr lvs实现方式之tun lvs实现方式之FULLNAT lvs之算法 静态算法   &…

    Linux干货 2017-01-03
  • Linux下软件包安装(rpm,yum)

    Linux下软件包安装(rpm,yum,源代码) 1)    Rpm包管理安装 2)    Yum包程序管理器 3)    本地Yum仓库建制 ======================================= 1) …

    Linux干货 2016-06-22