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

相关推荐

  • N26 第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; [root@localhost ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in mem…

    Linux干货 2017-02-07
  • 文件管理

    一、文件系统     单根架构,根文件系统rootfs     不是linux大小写敏感,而是文件系统支不支持大小写。     路径分割 /     FHS:目录结构,文件分层标准  &nb…

    Linux干货 2016-08-02
  • vim的使用说明

    vim的使用说明 vim是一款功能丰富而强大的文本编辑器,vim是从 vi 发展出来的一个文本编辑器。其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛的使用。 vim的使用非常方便,使用方法为:vim [options] [file ..] 1、vim可以对指定文件进行编辑,也可以直接启动vim编辑器进行编辑,对于打开指定文件编辑时可以加…

    Linux干货 2016-08-12
  • RAID详解

    测试机centos6.7 x86_64 一、RAID是什么     简单描述:RAID(Redundant Array of indenpensive Disk)独立磁盘冗余阵列:磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段或条带(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起…

    2016-02-14
  • 一起学习吧:SDCC 2017即将在上海共话架构、数据和运维!

    2017活动家邀你一起学习吧!SDCC 2017在上海共话架构、数据和运维,还有两天!【召开时间为:3月17至3月19日】 在互联网大潮下,2017年的就业环境越发恶劣,技术人如何去适应技术变革和学习新技术,以及如何快速增强自身的技术实力成为亟需解决的问题。如果你在看完一本技术图书后还是疑惑不解,处于目前项目遇到困难时无人请教的尴尬境地,亦不清楚业界同行在使…

    2017-03-15
  • Apc缓存Opcode

    1、PHP执行 PHP的运行阶段也分成三个阶段: Parse。语法分析阶段。 Compile。编译产出opcode中间码。 Execute。运行,动态运行进行输出。                            …

    Linux干货 2015-04-10