一、grep使用

(一)、选项

-a 不要忽略二进制数据。
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。

(二)、元字符

grep        //使用基本元字符集
^    $    .    *    [ ]    [^]    \< \>    \( \)    \{ \}     \+     \|
egrep(或grep -E):                    //使用扩展基本元字符集
?        +        {    }        |        (    )
//注:grep也可以使用扩展集中的元字符,仅需要对这些元字符前置一个反斜线
\w                            //所有字母与数字,称为字符[a-zA-Z0-9]    'l[a-zA-Z0-9]*ve'        'l\w*ve'

\W                            //所有字母与数字之外的字符,称为非字符      'love[^a-zA-Z0-9]+'    'love\W+'

\b                              //词边界            '\<love\>'            '\blove\b'

(三)、命令格式

grep [选项] PATTERN filename filename....

#grep 'Tom' /etc/passwd
#grep 'bash shell' /etc/test //找到: grep返回的退出状态为0
//没找到: grep返回的退出状态为1
//找不到指定的文件: grep返回的退出状态为2

管道格式

  grep 程序的输入可以来自标准输入或者管道,而不仅仅是文件,例如:

#grep 'tom'

#ps aux | grep 'sshd'

#ll | grep '^d'

#grep 'alice' /etc/passwd /etc/shadow /etc/group

二、示例

grep -E 或 egrep

# egrep 'NW' datafile

# egrep 'NW' d*

# egrep '4$' datafile

# egrep 'TB Savege' datafile

# egrep '5\..' datafile

# egrep '^[we]' datafile

# egrep '[^0-9]' datafile

# egrep '[A-Z][A-Z] [A-Z]' datafile

# egrep 'ss* ' datafile        

# egrep '[a-z]{9}' datafile

# egrep '\<north' datafile

# egrep '\<north\>' datafile    

# egrep '\<[a-r].*n\>' datafile

# egrep '^n\w*\W' datafile    

# egrep '\bnorth\b' datafile

# egrep 'NW|EA' datafile

# egrep '3+' datafile

# egrep '2\.?[0-9]' datafile    

# egrep '(no)+' datafile

# egrep 'S(h|u)' datafile

# egrep 'Sh|u' datafile

三、实战

# egrep 'ifcfg' /etc/*                    //文件
# egrep -R 'ifcfg' /etc //目录 # egrep 'root' /etc/passwd /etc/shadow /etc/hosts
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
/etc/shadow:root:$6$6vCMgBDL$g9KSR3cVWhzpqbwQs69haw/n4VFtVo2qYn8J0Gjy8wWBVmJjXfGS6DqVl/DNH.nH.xASCJexS4N2KVhIFWoMU.:17644:0:99999:7::: # egrep -l 'root' /etc/passwd /etc/shadow /etc/hosts
/etc/passwd
/etc/shadow # egrep -n 'root' /etc/passwd /etc/shadow /etc/hosts
/etc/passwd:1:root:x:0:0:root:/root:/bin/bash
/etc/passwd:10:operator:x:11:0:operator:/root:/sbin/nologin
/etc/shadow:1:root:$6$6vCMgBDL$g9KSR3cVWhzpqbwQs69haw/n4VFtVo2qYn8J0Gjy8wWBVmJjXfGS6DqVl/DNH.nH.xASCJexS4N2KVhIFWoMU.:17644:0:99999:7::: # egrep '^IPADDR' /etc/sysconfig/network-scripts/ifcfg-br0
IPADDR="10.18.43.100" # egrep '^IPADDR' /etc/sysconfig/network-scripts/ifcfg-br0 |egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
10.18.43.100 # egrep '^IPADDR' /etc/sysconfig/network-scripts/ifcfg-br0 |egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}'
10.18.43.100 # grep --help |grep '\-R'
-R, --dereference-recursive # grep --help |egrep -A5 '\-R'
-R, --dereference-recursive
likewise, but follow all symlinks
--include=FILE_PATTERN
search only files that match FILE_PATTERN
--exclude=FILE_PATTERN
skip files and directories matching FILE_PATTERN


grep使用集合的更多相关文章

  1. RHCE_DAY03

    shell函数 在shell环境中,将一些需要重复使用的操作,定义为公共的语句块,即可称为函数(给一堆命令取一个别名) 函数可以使脚本中的代码更加简洁,增强易读性,提高脚本的执行效率 #函数定义格式1 ...

  2. grep和map计算两个集合交集、并集、补集

    #!/usr/bin/perl use strict; ######################################## 用grep 和map 获取两个列表的交集并集.补集###### ...

  3. linux下grep分析apache日志的命令集合

    https://my.oschina.net/hmc0316/blog/112004 实例:月份英文简写英文全称一月Jan.January二月Feb.February三月Mar.March四月Apr. ...

  4. linux中grep的应用

    h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...

  5. 统计和分析系统性能【IO CPU 内存】的工具集合

    统计和分析系统性能[IO CPU 内存]的工具集合 blktrace http://www.oschina.net/p/blktrace 获取磁盘写入的信息 root@demo:~/install/p ...

  6. 【Linux学习】Vi 操作命令集合

    Vi 操作命令集合 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文 ...

  7. grep 正则表达式

    本文转自:http://www.jb51.net/article/31207.htm 正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串.vim.grep.aw ...

  8. grep 命令详解

    [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件的方式搜寻数据 - ...

  9. (转)Linux grep

    文章转自 http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html 简介 grep (global search regular ...

随机推荐

  1. SQLPLUS执行PL/SQL语句块

    1.首先登录Oracle HR schema: 2.对于PL/SQL程序,分号表示语句的结束:而使用 "."  号表示整个语句块的结束,也可以省略.按回车键后,该语句块不会执行,即 ...

  2. Jenkins+svn+ftp自动化发布asp.net项目

    今天将自己所掌握的(Jenkins+svn+ftp自动化发布asp.net项目)知识分享给大家,希望能帮组到大家: (1)先下载Jenkins并安装: (2)安装.Net所需要的插件: (3)配置插件 ...

  3. Burp Suite 基础知识(一)

    前言 大家好,我是小白,下面开始我的表演,以下内容如有雷同纯属巧合,靴靴.  (鞠躬 学到什么就写什么,可能有点乱哈. Burp Suite 是一款用于攻击 web 应用程序的集成平台,包含了许多工具 ...

  4. Net Core 2.1 日志记录框架NLog+Mysql配置

    NLog是什么? 这里还是简单介绍一下吧,为了让小白也知道.NLog是一个灵活的免费日志记录平台,适用于各种.NET平台,包括.NET Core.NLog可以通过简单地配置就可以可以很方便的写入多个日 ...

  5. 微服务-springcloud-注册中心

    创建服务注册中心(eureka-server) 1.创建项目,选择 Eureka Server 别的都不要选择,next-finish 2.application.yml中写入如下信息:通过eurek ...

  6. CSS属性过滤

    在前端领域,当我们想在ie6及以下版本和标准浏览器的样式不同我们怎么做呢 此时此刻不得不提到过滤器:即一种对特定浏览器显示和隐藏规则的声明方法 1.下划线属性过滤器 符合标准的浏览器都会忽略这个声明, ...

  7. WebSocket+Netty构建web聊天程序

    WebSocket 传统的浏览器和服务器之间的交互模式是基于请求/响应的模式,虽然可以使用js发送定时任务让浏览器在服务器中拉取但是弊端很明显,首先就是不等避免的延迟,其次就是频繁的请求,让服务器的压 ...

  8. tomcat一键发布

    1. 场景描述 linux下tomcat一键发布,包含停用服务.删除war包.拷贝war包及备份.重启服务等,以前的版本还包含svn更新及打包,后来在生产上怕出问题,改成本地打war包后,ftp上传到 ...

  9. 【UR #7】水题走四方 题解

    链接:http://uoj.ac/problem/84 20分算法:萌萌的小爆搜,别搜进环里就行. 50分:我们考虑一下最优决策是什么样的.看似很显然的一点就是我们先让本体在原地不动,让分身去遍历子树 ...

  10. Java面试题汇总---升级版(附答案)

    前几天写了Java面试题汇总---基础版,总结了面试中常见的问题及答案,那我今天基于昨天的话题做一次升级,也就是说,求职者除了要学习了解哪些常见的基础面试题之外,还得准备些什么呢? 对有工作经验的求职 ...