我的编程空间,编程开发者的网络收藏夹
学习永远不晚

一、linux grep命令详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

一、linux grep命令详解

目录

1. grep【擅长在文件中匹配文本】

    1.1 命令参数

     1.1.1 用法举例

    1.2 grep搭配管道使用

     1.2.1 grep和cat搭配管道

     1.2.2 grep和ps搭配管道

    1.3 扩展

      1.3.1 常见的正则表达式

      1.3.2 用于egrep 和 grep -e 的元字符扩展集


grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配的标红)

  • 语法:grep [options] pattern [file...]
  • 简介:常用来做全局数据的查询定位(最擅长文本过滤)

    1.1 命令参数

  • -A<显示行数>:显示匹配行及后面n行内容
  • -B<显示行数>:显示匹配行及前面n行内容
  • -C<显示行数>:显示匹配行及前后n行内容
  • -E:扩展的正则表达式,相当于egrep(可以识别特殊正则符号)
  • -l:列出匹配文件内容的文件名
  • -L:列出不匹配文件内容的文件名
  • -e:实现多个选项间的逻辑or关系,或者使用egrep

              egrep '^root|bash$' passwd

              grep -e '^abc' -e 'b$' oldboy.txt

  • -i:字符忽略大小写
  • -c:统计匹配成功的行数
  • -n:显示匹配的行号
  • -r:进行递归查找子目录中的文件
  • -v:显示不被pattern匹配到的行,相当于[^]反向匹配(进行匹配信息取反过滤操作) 

       grep -v '^$':过滤空白行(^$ 表示从首到尾;-v取反,即该命令作用:过滤空白行/符) 

  • -o:只显示匹配到的字符串
  • -q:静默模式,不输出任何信息
  • -s:不显示错误信息
  • -w:只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)
  • --color:匹配到的关键词会高亮显示

       grep xxx ---color=auto   --- 查询关键字高亮显示

  • \< \>分别标注单词的开始与结尾(类似模糊查询)

       grep man /oldboy/oldboy.txt          ---会匹配man、manic、batman

       grep '\

       grep 'man\>' /oldboy/oldboy.txt     --- 会匹配batman

       grep '\' /oldboy/oldboy.txt  --- 只会匹配man

     1.1.1 用法举例

前期准备:

[root@hero ~]# cat /oldboy/oldboy.txt 
01 oldboy
02 oldgirl
03 oldbaby
04 man
05 manical
06 batman


1. 命令参数之【-A:显示匹配行及后面n行内容】

[root@hero ~]# grep -A 2 'oldbaby' /oldboy/oldboy.txt 
03 oldbaby
04 man
05 manical


2. 命令参数之【-B:显示匹配行及前面n行内容】

[root@hero ~]# grep -B 2 'manical' /oldboy/oldboy.txt 
03 oldbaby
04 man
05 manical


命令参数之【-C:显示匹配行及前后n行内容】

[root@hero ~]# grep -C 2 'oldbaby' /oldboy/oldboy.txt 
01 oldboy
02 oldgirl
03 oldbaby
04 man
05 manical


命令参数之【-E:扩展的正则表达式,相当于egrep(可以识别特殊正则符号)】

[root@hero ~]# grep -E 'old.*' /oldboy/oldboy.txt 
01 oldboy
02 oldgirl
03 oldbaby


命令参数之【-l:列出匹配文件内容的文件名】

[root@hero ~]# grep -l 'oldboy' /oldboy/*
/oldboy/oldboy.txt


命令参数之【-L:列出不匹配文件内容的文件名】

[root@hero ~]# grep -L 'oldboy' /oldboy/*
/oldboy/oldbaby.txt
/oldboy/oldgirl.txt


命令参数之【-e:实现多个选项间的逻辑or关系,或者使用egrep】

[root@hero ~]# grep -e 'oldboy' -e 'manical' /oldboy/oldboy.txt
01 oldboy
05 manical

#使用egrep命令:

[root@hero ~]# egrep 'oldboy|manical' /oldboy/oldboy.txt 
01 oldboy
05 manical


命令参数之【-i:字符忽略大小写】

[root@hero ~]# grep -i 'OLDBOY' /oldboy/oldboy.txt
01 oldboy


命令参数之【-c:统计匹配成功的行数】

[root@hero ~]# grep -c 'man' /oldboy/oldboy.txt
3


命令参数之【-n:显示匹配的行号】

[root@hero ~]# grep -n 'man' /oldboy/oldboy.txt
4:04 man
5:05 manical
6:06 batman


命令参数之【-r:进行递归查找子目录中的文件】

[root@hero ~]# grep -r 'ma' /oldboy/
/oldboy/oldboy.txt:04 man
/oldboy/oldboy.txt:05 manical
/oldboy/oldboy.txt:06 batman
/oldboy/oldgirl.txt:math


命令参数之【-v:显示不被pattern匹配到的行,相当于[^]反向匹配(进行匹配信息取反过滤操作)】

[root@hero ~]# grep -v 'ma' /oldboy/oldboy.txt 
01 oldboy
02 oldgirl
03 oldbaby


命令参数之【-o:只显示匹配到的字符串】

[root@hero ~]# grep -o 'cal' /oldboy/oldboy.txt 
cal


命令参数之【-q:静默模式,不输出任何信息】

[root@hero ~]# grep -q 'man' /oldboy/oldboy.txt


命令参数之【-s:不显示错误信息】

[root@hero ~]# grep 'man' /oldboy/oldboy
grep: /oldboy/oldboy: 没有那个文件或目录

[root@hero ~]#grep -s 'man' /oldboy/oldboy


命令参数之【-w:只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)】

[root@hero ~]# grep -w 'man' /oldboy/oldboy.txt 
04 man


命令参数之【\< :匹配单词的开头】

[root@hero ~]# grep '\ 04 man
05 manical


命令参数之【\>:匹配单词的结尾】

[root@hero ~]# grep 'man\>' /oldboy/oldboy.txt 
04 man
06 batman


同时使用\< \>

[root@hero ~]# grep '\' /oldboy/oldboy.txt 
04 man

    1.2 grep搭配管道使用

     1.2.1 grep和cat搭配管道

[root@hero ~]# cat /oldboy/oldboy.txt |grep oldboy
01 oldboy

     1.2.2 grep和ps搭配管道

[root@hero ~]# ps -ef|grep ssh|grep -v grep     --- 过滤ssh进程信息,并去除最后一行的grep信息
root       7384      1  0 16:18 ?        00:00:00 /usr/sbin/sshd -D
root       7883   7384  0 16:18 ?        00:00:01 sshd: root@pts/0

    1.3 扩展

      1.3.1 常见的正则表达式

常见的正则表达式
^锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
.匹配一个非换行符的字符如:'gr.p'匹配gr后接一个任意字符,然后是p。
*匹配零个或多个先前字符如:'*grep'匹配所有一个或多个空格后紧跟grep的行
[]匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^]匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
\<锚定单词的开始,如:'\
\>锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
\w匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。

\W

\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
\b匹配一个单词的边界。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”;“\b1_”可以匹配“1_23”中的“1_”,但不能匹配“21_3”中的“1_”。
\B匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。

      1.3.2 用于egrep 和 grep -e 的元字符扩展集

用于egrep 和 grep -e的元字符扩展集
+匹配前面的子表达式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
?匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”。?等价于{0,1}。
|将两个匹配条件进行逻辑“或”(Or)运算。例如正则表达式(him|her) 匹配"it belongs to him"和"it belongs to her"
()分组符号,如:love(able|rs)ov+匹配loveable或lovers,匹配一个或多个ov。
{n}n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。
{n,}n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。
{n,m}m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o为一组,后三个o为一组。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。

来源地址:https://blog.csdn.net/m0_53741670/article/details/129484597

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

一、linux grep命令详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux中grep命令详解

目录一、grep基本介绍二、正则表达式grep实践2.1、输出以 I 开头的行(不区分大小写)2.2、输出以.结尾的行2.3、$符号 注意在linux平台下, 所有文件的结尾都有一个$符可以利用cat -A 查看文件2.4、^$(代表空行的
2023-02-13

Linux中grep和egrep命令详解

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

linux中使用grep命令详解

linux grep命令 Linux grep命令用于查找文件里符合条件的字符串;也可以用于查找内容包含指定的范本样式的文件。它能使用正则表达式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模
2022-06-04

Linux常用命令之grep命令用法详解

1.官方简介 grep是linux的常用命令,用于对文件和文本执行重复搜索任务的Unix工具,可以通过grep命令指定特定搜索条件来搜索文件及其内容以获取有用的信息。Usage: grep [OPTION]... PATTERN [FILE
2022-06-03

Linux 系统 grep 命令超详细讲解

grep命令是Linux系统中非常常用的搜索命令,用于在文件中查找指定的字符串。下面是grep命令的详细讲解:基本语法:grep [选项] 字符串 文件名选项:- i 忽略大小写- r 递归搜索- v 反选,只打印没有匹配到字符串的行- l
2023-09-15

一天一个shell命令 linux文本内容操作系列-grep命令详解

从这篇开始,是文本内容操作,区别于文本操作。 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正
2022-06-04

详解 Shell中的grep命令

用‘grep'搜索文本文件 如果您要在几个文本文件中查找一字符串,可以使用‘grep'命令。‘grep'在文本中搜索指定的字符串。举个例子:假设您正在‘/usr/src/linux/Documentation'目录下搜索带字符串‘magic
2022-06-04

详解Linux下find查找文件命令和grep查找文件命令

目录一、find命令1.按文件名2.按文件类型查询3.按照文件大小查找4.按照文件日期查找4.1按照创建日期查找4.2按照修改日期查找4.3按照访问日期查找5.按深度查找5.1查找起始点以下n层的目
2022-06-05

深入理解Linux中的grep命令

介绍 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。g
2022-06-04

Linux中常用的一些grep命令总结

本篇内容主要讲解“Linux中常用的一些grep命令总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux中常用的一些grep命令总结”吧!概述:所有的类linux系统都会提供一个名为gr
2023-06-13

Linux中grep命令怎么用

小编给大家分享一下Linux中grep命令怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!介绍Linux系统中grep命令是一种强大的文本搜索工具,它能使用正
2023-06-09

Linux grep命令怎么使用

这篇文章主要介绍了Linux grep命令怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux grep命令怎么使用文章都会有所收获,下面我们一起来看看吧。Linux常用命令grep是一种强大的文本
2023-06-28

Linux中的grep命令介绍

本篇内容介绍了“Linux中的grep命令介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux 最重要的三个命令在业界被称为三剑客,
2023-06-15

Linux系统grep命令是什么

这篇文章的内容主要围绕Linux系统grep命令是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!Linux grep命令用于查找文件里符合条件的
2023-06-28

Linux中grep命令有什么用

这篇文章给大家分享的是有关Linux中grep命令有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具。无论何种原因,如果你的系统没有预装它的话
2023-06-16

linux命令grep用法是什么

grep是Linux中一种非常实用的文本搜索命令,用于在文件或标准输入中搜索指定的模式,并输出匹配的行。grep的基本用法为:grep [选项] 模式 [文件]其中,选项可选,用于对grep的搜索行为进行进一步的控制,常用的选项包括:-n:
2023-09-14

Linux中如何使用grep命令

本篇文章给大家分享的是有关Linux中如何使用grep命令,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1. grep简介grep (global search regular
2023-06-16

linux中怎么使用grep命令

在Linux中,可以使用grep命令来搜索文件中匹配特定模式的行。其基本语法为:```grep [选项] 模式 [文件名]```其中,选项是可选的,可以用于定制grep命令的行为。常用的选项有:- `-i`:忽略大小写- `-v`:反向匹配
2023-08-18

编程热搜

目录