首页 > 系统相关 >15个Linux Grep命令使用实例(实用、常用)

15个Linux Grep命令使用实例(实用、常用)

时间:2025-01-14 11:14:22浏览次数:1  
标签:WORD 15 demo 代码 Grep file Linux grep line

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.

标签:WORD,15,demo,代码,Grep,file,Linux,grep,line
From: https://www.cnblogs.com/hanease/p/18670357

相关文章

  • linux-大数据常用命令
    1.vi/vim一般模式语法 功能描述yy 复制光标当前一行y数字y 复制一段(从第几行到第几行)p 箭头移动到目的行粘贴u 撤销上一步dd 删除光标当前行d数字d 删除光标(含)后多少行x 删除一个字母,相当于delX 删除一个字母,相当于Backspaceyw 复制一个词dw 删除一个词shift+^ 移动到行头shift+$......
  • Linux 运维必备 150 个命令汇总
    地址:https://www.linuxcool.com线上查询及帮助命令man:全拼manual,用来查看系统中自带的各种参考手册。help:用于显示shell内部命令的帮助信息。文件和目录操作命令ls:全拼list,列出目录的内容及其内容属性信息。cd:全拼changedirectory,切换当前......
  • linux-杂项
    1、常用基础防火墙systemctlstatusfirewalldsystemctlstopfirewalldsystemctlstartfirewalldfind/-size+100M-lsnetstat-tunlpiptables-nLnetstat-tulncat/etc/hosts.allowcat/etc/hosts.denytopfree-gcat/etc/passwdcat/etc/hosts.allowcat/etc/hosts.deny......
  • 【linux】文件与目录命令 - vim
    文章目录1.基本用法2.常用参数3.用法举例4.多种模式5.注意事项vim是一款功能强大的文本编辑器,适用于代码编辑和日常文本处理。它是vi的增强版,支持多种模式(如普通模式、插入模式和命令模式)以及插件扩展。1.基本用法语法:vim[选项][文件]功能:编......
  • 15. C语言 函数指针与回调函数
    本章目录:前言什么是函数指针?定义声明方式函数指针的基本用法示例:最大值函数输出示例:回调函数与函数指针什么是回调函数?通俗解释示例:回调函数实现动态数组填充输出示例:进一步探索:带参回调函数输出示例:函数指针的进阶技巧函数指针数组返回函数指针的函数输出示例:......
  • Linux网络编程4——系统编程
    一.电脑知识1.电脑基础CPU:相当于大脑,核心处理器内存条:存放临时数据,相当于人体的临时记忆磁盘:存放长时间数据,相当于人体的长时间记忆显卡:将各种影像输出的装置主板:将所有的零件存储起来2.磁盘磁盘要放入计算机且被Linux系统识别,到可以使用磁盘存储数据,过程如下:1.磁盘......
  • 15. 三数之和
    题目这道题着实不知道怎么动笔,看了卡哥思路,很详细,其中的去重小细节讲的非常好,里面讲了两种方法,一种是不太推荐的哈希解法(因为题目要求结果的三元组去重,所以哈希解法不太推荐,但是这个解法我也没太看懂),一种是更推荐的双指针解法。看了卡哥代码敲的:classSolution{public:v......
  • LeetCode:215.数组中的第K个最大元素
    LeetCode:215.数组中的第K个最大元素解题思路看到“第K个最大元素”。考虑选择使用最小堆。解题步骤构建一个最小堆,并依次把数组的值插入堆中。当堆的容量超过K,就删除堆顶。插入结束后,堆顶就是第K个最大元素。leetcode在线运行测试可能是用本地环境跑分...有缓存卡大数有er......
  • Linux系统中解决端口占用问题
    在日常的Linux系统管理和开发过程中,端口占用是一个常见且令人头疼的问题。无论是部署新服务、调试应用程序,还是进行系统维护,遇到端口被占用都可能导致服务无法正常启动或运行。本文将详细介绍在Linux系统中如何识别和解决端口占用问题,帮助你高效地管理系统资源。一、常见的......
  • Windows 与 Linux 程序员的区别
    如果一个程序员从来没有在Linux,Unix下开发过程序,一直在Windows下面开发程序,同样是工作10年,大部分情况下与在Linux,unix下面开发10年的程序员水平会差别很大。这篇文章并不是想贬低Windows下面开发的人,做Windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的......