博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux中Grep常用的15个例子【转】
阅读量:5775 次
发布时间:2019-06-18

本文共 5188 字,大约阅读时间需要 17 分钟。

转自:

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

      首先建一个demo_file:

      $ cat demo_fileTHIS 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_filethis 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_fileTHIS 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_fileTwo 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_fileTHIS 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_fileTHIS 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_text4. Vim Word NavigationYou 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_textExample 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_textExample to show the difference between WORD and word* 192.168.1.1 - single WORD

      6.3 显示匹配前N行

      $ grep -C 2 "Example" demo_textword - 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_filethis 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_text4. Vim Word NavigationYou 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.txtabcd$ grep -v -e "a" -e "b" -e "c" test-file.txtd

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

      11.1计算匹配的字符串数

      $ grep -c "go" demo_text6

      11.2计算匹配的模式数

      $ grep -c this demo_file3

      11.3计算不匹配的模式数

      $ grep -v -c this demo_file4

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

      $ grep -l this demo_*demo_filedemo_file1

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

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

      例14:

      $ cat temp-file.txt1234512345$ grep -o -b "3" temp-file.txt2:38:3

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

      例15:用grep -n 显示行数

      $ grep -n "go" demo_text5: * 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/

      以上是

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

转载于:https://www.cnblogs.com/sky-heaven/p/10187395.html

你可能感兴趣的文章
Pinpoint跨节点统计失败
查看>>
机房带宽暴涨问题分析及解决方法
查看>>
XP 安装ORACLE
查看>>
八、 vSphere 6.7 U1(八):分布式交换机配置(vMotion迁移网段)
查看>>
[转载] 中华典故故事(孙刚)——19 万岁
查看>>
php5编译安装常见错误和解决办法集锦
查看>>
Unable to determine local host from URL REPOSITORY_URL=http://
查看>>
ORACLE配置,修改tnsnames.ora文件实例
查看>>
Workstation服务无法启动导致无法访问文件服务器
查看>>
Linux常用命令(一)
查看>>
我的友情链接
查看>>
JS中比较数字大小
查看>>
jQuery插件的开发
查看>>
基础,基础,还是基础之JAVA基础
查看>>
如何成为一个C++高级程序员
查看>>
我的友情链接
查看>>
显式锁(第十三章)
查看>>
看linux书籍做的一些重要笔记(2011.07.03更新)
查看>>
从案例学RxAndroid开发(上)
查看>>
Redis学习手册(内存优化)
查看>>