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文档的来看,一个正则表达式必须遵循下面的匹配操作。
1.?         The preceding item is optional and matched at most once.
2.*          The preceding item will be matched zero or more times.
3.+         The preceding item will be matched one or more times.
4.{n}      The preceding item is matched exactly n times.
5.{n,}     The preceding item is matched n or more times.
6.{,m}    The preceding item is matched at most m times.
7.{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.

15个Linux Grep命令使用实例(实用、常用)的更多相关文章

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

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

  2. linux grep命令总结

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

  3. Linux grep命令详解[备份]

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

  4. linux grep命令(linux在文件中搜索内容)

    转自:https://www.cnblogs.com/end/archive/2012/02/21/2360965.html linux grep命令 1.作用Linux系统中grep命令是一种强大的 ...

  5. linux grep命令详解

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

  6. linux grep命令

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

  7. Linux grep命令详细教程

    [本文出自天外归云的博客园] 简介 Linux grep命令是一种非常常用的文本搜索工具,它可以在给定的文件中搜索匹配的字符串,并输出匹配的行.grep是全称"global search r ...

  8. 【转】linux grep命令

    1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来 2.格式 grep [options] 3.主要参数 [options]主要参数: - ...

  9. [转]linux grep命令

    转自:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html 1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表 ...

  10. linux grep 命令

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

随机推荐

  1. Power BI DAX 公式使用

    一.日期类 1.计算两个日期之间的差值 使用函数:DateDiff(< start_date >,< end_date >.<间隔>) 例:合同终止天数 = DAT ...

  2. Jenkins Job触发其他远程Job

    https://blog.csdn.net/diaojian66/article/details/117334537 如果不想遇到连接远程Jenkins主机失败后的反复尝试,去掉认证会是一个不错的选择 ...

  3. 2024SHCTF--Crypto--Week1&Week2--WP

    2024SHCTF 注:针对2024SHCTF赛事,写下自己的解题思路以及个别赛题赛后复现对于题目而产生的理解. Week1 d_known task: from Crypto.Util.number ...

  4. zinxV0.1

    基础的server 框架 抽象层IServer.go IServer.go type IServer interface { // 实现一个服务器的基本三个接口,启动,停止,入口 Start() St ...

  5. 高性能计算-openmp编程-(探究 for/collapse)(11)

    1. 目标:探究嵌套循环 for 和 collapse 编程 2. 内容 (1). for 并行区默认对最近外层的循环控制变量私有,并对其划分并行,不必指明 private,内层循环体入口的循环控制变 ...

  6. Hibernate二级缓存 ---- 最佳实践

    2010年11月7号,立冬,星期天.北京外面风好大,躲在家里整理一下这篇文章,发出来与大家分享,对大家有帮助是我最高兴的事儿. 不要想当然的认为使用了Hibernate的二级缓存就一定能够提高应用程序 ...

  7. JavaCC : Java Glossary

    JavaCC Formerly known as Jack. JavaCC is a parser, like YACC (Yet Another Compiler Compiler), except ...

  8. SSL免费证书之Let’s Encrypt

    官网:https://letsencrypt.org/zh-cn 官网建议使用Certbot的方式进行安装,所以首先我们需要安装Certbot Certbot) 官网:Certbot (eff.org ...

  9. 基于Docker搭建PHP开发环境

    Docker 是这几年非常火的一项技术,作为一名软件开发人员,应该及时的接触和掌握. 镜像加速: 可以在阿里云上免费的获取,然后进行配置即可使用.阿里云 Docker 加速器,没有阿里云账号注册一个即 ...

  10. 不求甚解--详解ansible-playbook中roles的用法

    前言 本文将详细介绍ansible-playbook中roles的各种用法,它允许你将相关的任务.变量.处理器.文件和模板等集合在一起,以便于在不同的项目中复用 环境准备 组件 版本 操作系统 Ubu ...