用法

grep [OPTIONS] PATTERN  [FILE...]
grep [OPTIONS] -e PATTERN ... [FILE...]
grep [OPTIONS] -f FILE ... [FILE...]

grep在文件中查找匹配正则表达式的内容,默认打印出匹配的一行

选项

-E 支持扩展正则表达式
-F 把PATTERN解析成简单的字符串,而不是正则表达式
-G 只支持基础正则表达式,这是默认选项
-P 支持perl正则表达式

使用文件grp.txt为演示

$ cat grp.txt
{"id":, "username": "jack", "email": "459874@qq.com"}
{"res":[,,,]}
baidu in beijing
didi in beijing
ali in hangzhou
tencent in shenzhen
huawei in shenzhen

-e PATTERN, 使用-e选项可以匹配多个条件

-f FILE, 从文件中获取PATTERN
-i 忽略大小写
-v 反向匹配,只选择未匹配的

-w 匹配整个单词
-x 匹配整行

可以看到 -x 选项和 grep  '^h.*en$' grp.txt 等价

-c 不打印结果,只打印匹配到的行数
--color 匹配到的表达式高亮显示
-L 打印出未匹配的文件列表
-l 打印出匹配的文件列表
-m 指定最大匹配行数

-o 只打印匹配到的字符串,而不是打印一整行


-q 不打印结果,但是我们可以根据$?来判断是否有匹配到,在脚本中常用
-s 不打印错误结果(文件不存在、不可读文件)

-b  打印本行在文件中的字节偏移量

-H 打印匹配的文件名。当有多个文件匹配到的时候,这个是默认选项

-h 不打印文件名

-n 输出行号

--label 显示输入的时候用到,让标准输入STDIN的显示像从文件中读取的一样

-T 输出按照tab缩进

-Z 在文件名后输出 zero byte, 也就是啥都不输出

-A NUM 在匹配行后面再输出 NUM 行内容

-B NUM 在匹配行前面再输出 NUM 行内容

-C NUM 在匹配行前后各输出 NUM 行内容

--exclude=GLOB

--exclude-from=FILE

--exclude-dir=GLOB

这三个是跳过文件或目录

--include=GLOB 只处理匹配 GLOB 的文件

grep用法小结的更多相关文章

  1. [转]ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  2. ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  3. 转载:Hadoop排序工具用法小结

    本文转载自Silhouette的文章,原文地址:http://www.dreamingfish123.info/?p=1102 Hadoop排序工具用法小结 发表于 2014 年 8 月 25 日 由 ...

  4. [No000010]Ruby 中一些百分号(%)的用法小结

    #Ruby 中一些百分号(%)的用法小结 #这篇文章主要介绍了Ruby 中一些百分号(%)的用法小结,需要的朋友可以参考下 what_frank_said = "Hello!"#% ...

  5. C++ typedef用法小结 (※不能不看※)

    C++ typedef用法小结 (※不能不看※) 第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不 ...

  6. 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

    函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...

  7. 1:CSS中一些@规则的用法小结 2: @media用法详解

    第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下     at-rule ...

  8. 英语语法最终珍藏版笔记- 21it 用法小结

    it 用法小结 it 在英语中的意思较多,用法较广,现总结如下. 一.it作句子的真正主语 1.it 指前面已经提到过的人或事物,有时指心目中的或成为问题的人或事物,作真正主语. 例如: What’s ...

  9. 结构体定义 typedef struct 用法详解和用法小结

    typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便.具体区别在于:若struct node {}这样来定义结构体的话.在申请node 的变量时,需要这样写,stru ...

随机推荐

  1. 在科技圈不懂“机器学习”?那你就out了

    当联网的终端设备越来越多时,产生的信息数据也将呈指数式增长,大型.复杂.增长快速的数据收集已经无处不在.而机器学习能够扩增这些数据的价值,并基于这些趋势提出更广泛的应用情境. 那么,被人们津津乐道的机 ...

  2. [C# 网络编程系列]专题八:P2P编程

    引言: 前面的介绍专题中有朋友向我留言说介绍下关于P2P相关的内容的,首先本人对于C#网络编程也不是什么大牛,因为能力的关系,也只能把自己的一些学习过程和自己的一些学习过程中的理解和大家分享下的,下面 ...

  3. 为什么使用中间件下载时总是收到警告消息Object is in status Wait

    在使用中间件从ERP下载对象时,正常情况下应该看到如下提示消息: 然而有时遇到的是黄色的警告消息:Object is in status Wait. 如何自己排错呢?在函数SMOF0_INIT_DNL ...

  4. 简单的PHP算法题

    简单的PHP算法题 目录 1.只根据n值打印n个0 2.根据n值打印一行 0101010101010101010101…… 3.根据n值实现1 00 111 0000 11111…… 4.根据n值实现 ...

  5. linux服务基础之CentOS6编译安装mariadb

    1. 下载mariadb https://downloads.mariadb.org/mariadb/+releases/ 2. 解压到指定目录 # tar xf mariadb--linux-x86 ...

  6. python time模块计算程序耗时

    import time start = time.clock() end = time.clock() consume_time = end - start

  7. vue---组件引入及使用的几种方式

    在vue的项目开发过程中,基本都是基于组件化开发项目,总结下使用组件的几个点: 一.@符号的使用 在vue项目中 @ 符号代表的是根目录,即 src 目录. 二.组件的放置位置 在项目中,公用的组件放 ...

  8. 关于eclipse中引入项目报错或者没有JRE System Library问题(jre报错)或者jre1.7(8)改为jre1.8(7)等问题

    解决方法: 右键项目工程-->>properties->>java bulid path -->>>libraries -->>add libra ...

  9. 【luogu P1231 教辅的组成】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1231 对于每本书只能用一次,所以拆点再建边 #include <queue> #include ...

  10. Python基础—01-认识python,编写第一个程序

    认识python 发展历史:点此查看简介 就业方向: WEB.爬虫.运维.数据分析.机器学习.人工智能.... 版本选择 python2.7是最后一个py2的版本,2020年将不再提供支持 pytho ...