转自:https://www.aliyun.com/jiaocheng/1390860.html?spm=5176.100033.1.9.6a1e41e8Pdjynm

    • 摘要:Grep命令主要用于从文件中查找指定的字符串。首先建一个demo_file:$catdemo_fileTHISLINEISTHE1STUPPERCASELINEINTHISFILE.thislineisthe1stlowercaselineinthisfile.ThisLineHasAllItsFirstCharacterOfTheWordWithUpperCase.Twolinesabovethislineisempty.Andthisisthelastline.例01:从
    • Grep命令主要用于从文件中查找指定的字符串。

      首先建一个demo_file:

      1. $ cat demo_file
      2. THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
      3. this line is the 1st lower case line in this file.
      4. This Line Has All Its First Character Of The Word With Upper Case.
      5.  
      6. Two lines above this line is empty.
      7. And this is the last line.

      例01:从单个文件中查找指定的字符串

      1. $ grep "this" demo_file
      2. this line is the 1st lower case line in this file.
      3. Two lines above this line is empty.

      例02:从多个文件中查找指定的字符串

      1. $ cp demo_file demo_file1
      2.  
      3. $ grep "this" demo_*
      4. demo_file:this line is the 1st lower case line in this file.
      5. demo_file:Two lines above this line is empty.
      6. demo_file:And this is the last line.
      7. demo_file1:this line is the 1st lower case line in this file.
      8. demo_file1:Two lines above this line is empty.
      9. demo_file1:And this is the last line.

      例03:忽略大小写使用 grep -i

      1. $ grep -i "the" demo_file
      2. THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
      3. this line is the 1st lower case line in this file.
      4. This Line Has All Its First Character Of The Word With Upper Case.
      5. And this is the last line.

      例04:在文件中匹配正则表达式

      如果你能在实际使用正则表达式,能使效率大大提高。在下面的例子中,匹配了所有以lines开头,以empty结尾的行。

      1. $ grep "lines.*empty" demo_file
      2. Two lines above this line is empty.

      从Grep文档的来看,一个正则表达式必须遵循下面的匹配操作。

      • ?         The preceding item is optional and matched at most once.
      • *          The preceding item will be matched zero or more times.
      • +         The preceding item will be matched one or more times.
      • {n}      The preceding item is matched exactly n times.
      • {n,}     The preceding item is matched n or more times.
      • {,m}    The preceding item is matched at most m times.
      • {n,m}  The preceding item is matched at least n times, but not more than m times.

      例05:用grep -w来查找全匹配,不包括子字符串

      比如说:用下面的例子搜索出来的例子包括"is","his"

      1. $ grep -i "is" demo_file
      2. THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
      3. this line is the 1st lower case line in this file.
      4. This Line Has All Its First Character Of The Word With Upper Case.
      5. Two lines above this line is empty.
      6. And this is the last line.

      而用grep -iw搜索出来的结果如下: 注意,忽略大小。"IS","is"

      1. $ grep -iw "is" demo_file
      2. THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
      3. this line is the 1st lower case line in this file.
      4. Two lines above this line is empty.
      5. And this is the last line.

      例06:用grep -A,-B,-C 来查看after/before/around 行

      当在一个大的文件中执行grep操作时,如果想要看其中一些行,并且想看之前,之后的或某些行附近的,那么这里命令就起作用了。grep -A,-B,-C.先建个demo.txt作为模板

      1. $ cat demo_text
      2. 4. Vim Word Navigation
      3.  
      4. You may want to do several navigation in relation to the words, such as:
      5.  
      6. * e - go to the end of the current word.
      7. * E - go to the end of the current WORD.
      8. * b - go to the previous (before) word.
      9. * B - go to the previous (before) WORD.
      10. * w - go to the next word.
      11. * W - go to the next WORD.
      12.  
      13. WORD - WORD consists of a sequence of non-blank characters, separated with white space.
      14. word - word consists of a sequence of letters, digits and underscores.
      15.  
      16. Example to show the difference between WORD and word
      17.  
      18. * 192.168.1.1 - single WORD
      19. * 192.168.1.1 - seven words.

      6.1 显示匹配后N行

      1. $ grep -A 3 -i "example" demo_text
      2. Example to show the difference between WORD and word
      3.  
      4. * 192.168.1.1 - single WORD
      5. * 192.168.1.1 - seven words.

      6.2 显示匹配前N行

      1. $ grep -B 2 "single WORD" demo_text
      2. Example to show the difference between WORD and word
      3.  
      4. * 192.168.1.1 - single WORD

      6.3 显示匹配前N行

      1. $ grep -C 2 "Example" demo_text
      2. word - word consists of a sequence of letters, digits and underscores.
      3.  
      4. Example to show the difference between WORD and word
      5.  
      6. * 192.168.1.1 - single WORD

      例07:用GREP_OPTIONS来让查找的项醒目

      如果你想使匹配的好看且醒目,可以使用下面的操作:

      1. $ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
      2.  
      3. $ grep this demo_file
      4. this line is the 1st lower case line in this file.
      5. Two lines above this line is empty.
      6. And this is the last line.

      例08:用grep -r来搜索所有的文件及子目录

      1. $ grep -r "ramesh" *

      例09:用grep -v来显示不匹配的项

      1. $ grep -v "go" demo_text
      2. 4. Vim Word Navigation
      3.  
      4. You may want to do several navigation in relation to the words, such as:
      5.  
      6. WORD - WORD consists of a sequence of non-blank characters, separated with white space.
      7. word - word consists of a sequence of letters, digits and underscores.
      8.  
      9. Example to show the difference between WORD and word
      10.  
      11. * 192.168.1.1 - single WORD
      12. * 192.168.1.1 - seven words.

      例10:显示所有不匹配的项

      1. $ cat test-file.txt
      2. a
      3. b
      4. c
      5. d
      6.  
      7. $ grep -v -e "a" -e "b" -e "c" test-file.txt
      8. d

      例11:用grep -c 来计算匹配的数量

      11.1计算匹配的字符串数

      1. $ grep -c "go" demo_text
      2. 6

      11.2计算匹配的模式数

      1. $ grep -c this demo_file
      2. 3

      11.3计算不匹配的模式数

      1. $ grep -v -c this demo_file
      2. 4

      例12:使用grep -l显示匹配的文件名

      1. $ grep -l this demo_*
      2. demo_file
      3. demo_file1

      例13:只显示匹配的字符串

      1. $ grep -o "is.*line" demo_file
      2. is line is the 1st lower case line
      3. is line
      4. is is the last line

      例14:

      1. $ cat temp-file.txt1234512345
      2. $ grep -o -b "3" temp-file.txt
      3. 2:3
      4. 8:3

      注意:上述的不是该字符所在行中的位置,而是字节的位置。

      例15:用grep -n 显示行数

      1. $ grep -n "go" demo_text
      2. 5: * e - go to the end of the current word.
      3. 6: * E - go to the end of the current WORD.
      4. 7: * b - go to the previous (before) word.
      5. 8: * B - go to the previous (before) WORD.
      6. 9: * w - go to the next word.
      7. 10: * W - go to the next WORD.

      原文链接: http://www.thegeekstuff.com/2009/03/15-practical-unix-grep-command-examples/

    • 以上是

Linux中Grep常用的15个例子

      的内容,更多 的内容,请您使用右上方搜索功能获取相关信息。

Linux中Grep常用的15个例子【转】的更多相关文章

  1. Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。

    Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们. 这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到版权问题. 1.显示日期的 ...

  2. Linux中grep和egrep命令详解

    rep / egrep 语法: grep  [-cinvABC]  'word'  filename -c :打印符合要求的行数-i :忽略大小写-n :在输出符合要求的行的同时连同行号一起输出-v ...

  3. linux中的常用命令

    cat tail -f 日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关 ...

  4. linux中grep命令的用法

    作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的. 首先谈一下grep命令的常用格式为:[grep  [选项]  "模式"  [ ...

  5. 12个 Linux 中 grep 命令的超级用法实例

    12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一 ...

  6. linux中grep命令的使用

    转载:http://blog.csdn.net/universsky/article/details/8866402 linux中grep命令的使用 grep (global search regul ...

  7. linux中的常用信号

    linux中的常用信号,见如下列表: 信号名 值 标注 解释 ------------------------------------------------------------------ HU ...

  8. Linux中grep命令的12个实践例子

    grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和 ...

  9. Linux 中 grep 命令的 12 个实践例子

    2017-10-17 Linux小管家 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件 ...

随机推荐

  1. 《Kafka权威指南》读书笔记-操作系统调优篇

    <Kafka权威指南>读书笔记-操作系统调优篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大部分Linux发行版默认的内核调优参数配置已经能够满足大多数应用程序的运 ...

  2. @JsonIgnore注解可以实现不返回前端字段

    import com.fasterxml.jackson.annotation.JsonIgnore; /** * 密码 */ @JsonIgnore private String password;

  3. 【1】BIO,NIO,AIO与Reactor,Proactor

    讲解IO思路: BIO(一个连接一个线程) -->大并发问题-->NIO(操作系统层面:IO多路复用) -->NIO两个问题:1.谁去监听就绪(Boss),2.谁来处理已就绪(Wor ...

  4. [leetcode-118]Pascal's triangle 杨辉三角

    Pascal's triangle (1过) Given numRows, generate the first numRows of Pascal's triangle. For example, ...

  5. UVA - 1401 | LA 3942 - Remember the Word(dp+trie)

    https://vjudge.net/problem/UVA-1401 题意 给出S个不同的单词作为字典,还有一个长度最长为3e5的字符串.求有多少种方案可以把这个字符串分解为字典中的单词. 分析 首 ...

  6. Docker 从入门到放弃(三)镜像使用

    当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 下面我们来学习: 1.管理和使用本地 Docker ...

  7. Spark源码解析 - Spark-shell浅析

    1.准备工作 1.1 安装spark,并配置spark-env.sh 使用spark-shell前需要安装spark,详情可以参考http://www.cnblogs.com/swordfall/p/ ...

  8. ArcMap登录和ArcGIS online都是灰色,无法连接网络的解决方法

    此问题可能由多种原因造成,表现为系统托盘中的 ArcGIS Online 地球图标断开连接(显示红色×). 解决方法: 方法一: 在系统托盘中的 ArcGIS Online 地球图标右键单击此图标 & ...

  9. 使用JSX的注意事项

    react中JSX是一种JavaScript + xml语法,用来创建虚拟DOM和声明组件.他可以更好的让我们读.写模板或组件. JSX语法浏览器是不识别的,需要通过babel 来进行转换成浏览器识别 ...

  10. 关于JDBC技术中,调用MySQL中不建议在没有服务器身份验证的情况下建立SSL连接错误解决

    今天学习到了JBDC前沿:对JDBC编写步骤的封装,出现了一大串红色报错(当然,也不能叫报错,毕竟不是所有的红色都是错误eeror,) 错误如下: Establishing SSL connectio ...