Linux中Grep常用的15个例子【转】

转自: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:

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

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

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

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

      $ cp demo_file demo_file1
      
      $ grep "this" demo_*
      demo_file:this line is the 1st lower case line in this file.
      demo_file:Two lines above this line is empty.
      demo_file:And this is the last line.
      demo_file1:this line is the 1st lower case line in this file.
      demo_file1:Two lines above this line is empty.
      demo_file1:And this is the last line.

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

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

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

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

      $ grep "lines.*empty" demo_file
      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"

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

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

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

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

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

      $ cat demo_text
      4. Vim Word Navigation
      
      You may want to do several navigation in relation to the words, such as:
      
       * e - go to the end of the current word.
       * E - go to the end of the current WORD.
       * b - go to the previous (before) word.
       * B - go to the previous (before) WORD.
       * w - go to the next word.
       * W - go to the next WORD.
      
      WORD - WORD consists of a sequence of non-blank characters, separated with white space.
      word - word consists of a sequence of letters, digits and underscores.
      
      Example to show the difference between WORD and word
      
       * 192.168.1.1 - single WORD
       * 192.168.1.1 - seven words.

      6.1 显示匹配后N行

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

      6.2 显示匹配前N行

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

      6.3 显示匹配前N行

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

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

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

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

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

      $ grep -r "ramesh" *

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

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

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

      $ cat test-file.txt
      a
      b
      c
      d
      
      $ grep -v -e "a" -e "b" -e "c" test-file.txt
      d

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

      11.1计算匹配的字符串数

      $ grep -c "go" demo_text
      6

      11.2计算匹配的模式数

      $ grep -c this demo_file
      3

      11.3计算不匹配的模式数

      $ grep -v -c this demo_file
      4

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

      $ grep -l this demo_*
      demo_file
      demo_file1

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

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

      例14:

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

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

      例15:用grep -n 显示行数

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

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

    • 以上是

Linux中Grep常用的15个例子

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

原文地址:https://www.cnblogs.com/sky-heaven/p/10187395.html

时间: 2024-11-03 22:51:22

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

linux中grep和find的用法区别

linux中grep和find的用法区别 本文章详细的介绍了关于在linux中的grep和find两个命令的用法介绍,以及后面总结了它们两年用法区别哦. 先我们来介绍一下关于grep用法和一些小注意事项 使用过程中,使用最多的参数就是 -v ,但是用着并不爽. 比如说,我想查找一个单词“UserService”,但是像”*.svn” 这种文件就不用显示了,我该怎么做呢? 代码如下 复制代码 grep -r "UserService" ./ | grep -v "svn&quo

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

12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum). $ sudo apt-get install grep #Debian/Ubuntu

linux中grep命令的用法(转)

作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的. 首先谈一下grep命令的常用格式为:grep  [选项]  ”模式“  [文件] grep家族总共有三个:grep,egrep,fgrep. 常用选项: -E :开启扩展(Extend)的正则表达式. -i :忽略大小写(ignore case). -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印. -n :显示行号 -w :被匹配的文本只能是单词,而不能是单词中的某一部分

linux中grep命令的用法

作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的.首先谈一下grep命令的常用格式为:grep  [选项]  "模式"  [文件] grep家族总共有三个:grep,egrep,fgrep. 常用选项: -E :开启扩展(Extend)的正则表达式. -i :忽略大小写(ignore case). -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印. -n :显示行号 -w :被匹配的文本只能是单词,而不能是单词中的

Linux中grep、egrep正则表达式的使用

正则表达式的由来 正则表达式,英文写法Regular Expression,在编程语言中常被简写为regex.regexp等.它是用来描述.匹配一系列符合某个句法规则字符串的单个字符串. 正则表达式通常被用来检索.替换那些符合某个模式(Pattern)的文本. 1950年代,UNIX之父Ken Thompson将正则表达式引入编辑器QED,然后是编辑器ed,最终引入到grep中.从此,正则表达式被广泛地应用到了各种UNIX或类UNIX系统的工具之中,例如perl. 近些年来,主流操作系统.主流开

Linux中grep命令学习

1.简介 grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就说,正则表达式中的元字符表示回其自身的字面意义,不再特殊.linux使用GNU版本的grep.它功能更强,可以通过-G.-E.-F命令行选项来使用egre

linux中grep命令-From cyber

1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expr ession Print,表示全局正则表达式版本,它的使用权限是所有用户. 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数. -I:不区分大 小写(只适用于单字符). -h:查询多文件时不显示文件名. -l:查询多文件时只输出包含匹配字符的文件名. -n:显示匹配行及

Linux中grep,sed的使用

今天,Mayuyu来讲一些Linux中常用的命令. 1. grep命令 grep用于过滤自己需要的内容,语法如下    grep Mayuyu --color 过滤出所有包含Mayuyu的行,grep中也是支持正则表达式的. 2. sed命令 使用普通的vim编辑器在编辑文件时有两个主要的问题    (1)当文件比较大的时候,需要打开文件,占用较大的内存. (2)编辑文件时,必须互动,所以很难调用vim等. sed属于流编辑器,所谓流编辑器就是在编辑文件的时候,可以不用把整个文件都读入内存,可以

Linux 中最常用的目录及文件管理命令

一.查看文件的命令 对于一个文本文件,在linux中有多种查看方式来获知文件内容,如直接显示整个文本内容.分页查看内容.或者只查看文件开头或末尾的部分内容.在linux可以用不同的命令来实现. 1. cat -显示并连接文件的内容 该命令是应用最为广泛的内容查看命令.使用该命令时,只需要把要查看的文件路径作为参数即可.例如,以下操作可以查看/etc/sysconfig/network-scripts/ifcfg-eth0配置文件的内容,了解第一块网卡的配置信息. 2. more 和 less