一、或(or)操作
1、使用选项 -E
grep -E 'a1|a2’filename // 找出文件(filename)中包含a1或者包含a2的行

2、使用egrep
egrep ‘a1|a2’ filename // 用egrep同样可以实现

3、使用选项 -e
使用grep -e 选项,只能传递一个参数。在单条命令中使用多个 -e 选项
grep -e a1 -e a2 filename //使用-e选项实现

4、使用awk
awk ‘/a1|a2/’ filename // awk 的实现方式

备注:推荐使用方法3

二、与(and)操作
1、使用 -E ‘par1.*par2’
grep命令本身不提供AND功能。但是,使用 -E 选项可以实现AND操作。
例1(其中两个pattern的顺序是指定的):
grep -E ‘a1.*a2’ filename

例2(两个pattern的顺序不是固定的,可以是乱序的):
grep -E ‘a1.*a2|a2.*a1’ filename

2、使用多个grep命令
grep “a1” filename | grep “a2” //找出既匹配 a1 又匹配 a2 的行

三、非(not)操作
1、使用选项 grep -v
使用 grep -v 可以实现 NOT 操作。-v 选项用来实现反选匹配的( invert match)。如,可匹配得到除下指定pattern外的所有lines。
grep -v ‘par1’ filename

2、将NOT操作与其他操作联合起来,以此实现更强大的功能组合
示例(将得到:'a1或者a2,但是不是a3’的结果):
egrep ‘a1|a2’ filename | grep -v a3

四、其他操作
grep -i pattern files //不区分大小写地搜索,默认情况区分大小写;
grep -l pattern files //只列出匹配的文件名;
grep -L pattern files //列出不匹配的文件名;
grep -w pattern files //只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不‘magical’);
grep -C number pattern files //匹配的上下文分别显示[number]行。

Linux-grep或和与操作的更多相关文章

  1. 如何使用Unix/Linux grep命令——磨刀不误砍柴工系列

     http://man.linuxde.net/grep ---------------------------------------------------- 如何使用Unix/Linux gre ...

  2. linux下mysql数据库的操作

    本文主要针对linux下mysql数据库的安装,以及数据库的创建和简单的数据库操作进行说明. ①.Mysql数据库的安装: 数据库的安装分为源码安装和rpm安装. 当然对于老手来说需要进行一些自定义的 ...

  3. Linux 命令、配置文件及操作

    Linux 命令.配置文件及操作 命令 命令 参数 说明 A alias.unalias 命令别名 B C cat 查看文件内容 cd 切换目录 chown 修改拥有着 chgrp 修改所属组 chm ...

  4. Linux 目录结构及详细操作

    目录 Linux 目录结构及详细操作 目录结构 目录结构的特点 目录结构挂载 目录结构发展 关闭selinux(了解) 重要目录说明(etc目录说明) 1.网卡配置文件 2.解析配置文件 3.主机名称 ...

  5. Linux文本搜索及截取操作

    Linux文本搜索及截取操作 cat 查看 grep 搜索 awk 截取 查看dna-server.xml 文件的内容 [root@localhost servers]# cat cwag9002/w ...

  6. linux grep命令

    linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expressio ...

  7. linux grep命令详解

    linux grep命令详解 简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来 ...

  8. 通过登入IP记录Linux所有用户登录所操作的日志

    通过登入IP记录Linux所有用户登录所操作的日志 对于Linux用户操作记录一般通过命令history来查看历史记录,但是如果在由于误操作而删除了重要的数据的情况下,history命令就不会有什么作 ...

  9. 24小时学通Linux内核之如何处理输入输出操作

    真的是悲喜交加呀,本来这个寒假早上8点都去练车,两个小时之后再来实验室陪伴Linux内核,但是今天教练说没名额考试了,好纠结,不过想想就可以睡懒觉了,哈哈,自从大三寒假以来还没睡过懒觉呢,现在也有更多 ...

  10. linux grep命令总结

    风生水起善战者,求之于势,不责于人,故能择人而任势. 博客园    首页    新随笔    联系    订阅    管理 posts - 791,  comments - 394,  trackba ...

随机推荐

  1. HTTP Headers Content-Type 详解

    https://www.cnblogs.com/whosmeya/p/14315632.html

  2. C#单向链表的实现

    节点 public class ListNode { public ListNode(int NewValue) { Value = NewValue; } //前一个 public ListNode ...

  3. FGC频繁导致CPU 飙升定位及JVM配置优化总结

    本文为博主原创,未经允许不得转载: 目录: 1. 定位消耗cpu 的服务进程和线程 2. 定位FGC 的原因 3. 定位jvm 参数是否导致FGC 4. 调试最优解的 jvm 配置 描述:项目中存在一 ...

  4. SSM整合 - 环境配置

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  5. css : object-fit 兼容 ie 的解决方案

    通过 github 搜索 object-fit ie  ,  借鉴大佬兼容 ie 的经验. 下载解压到文件夹 , 打开测试目录 , 查看 demo 使用 ie 打开demo , 查看显示效果 : 代码 ...

  6. Go-使用本地时间解析时间字符串

    字符串 ==> time.Time package main import ( "fmt" "log" "time" ) func m ...

  7. [转帖]PolarDB和Oceanbase的区别和联系

    PolarDB-X 和 OceanBase 都是阿里云提供的分布式关系型数据库产品,它们都具有高可用.高性能.分布式等特点.但是两者也存在一些差异. 数据库理论基础不同 PolarDB-X 基于传统的 ...

  8. [转帖]redis缓存命中率介绍

    缓存命中率的介绍 命中:可以直接通过缓存获取到需要的数据. 不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其它的操作.原因可能是由于缓存中根本不存在,或者缓存已经过期. 通常来讲 ...

  9. [转帖]elasticsearch-create-enrollment-tokenedit

    https://www.elastic.co/guide/en/elasticsearch/reference/current/create-enrollment-token.html The ela ...

  10. [转帖]linux删除文本文件空白行

    linux删除文本文件空白行https://www.zhihu.com/people/chen-kai-84-54-75 sed命令 在Linux中,可以使用sed命令批量删除文本中的空白行.以下是一 ...