广告
返回顶部
首页 > 资讯 > 操作系统 >深入理解Linux中的grep命令
  • 760
分享到

深入理解Linux中的grep命令

命令Linuxgrep 2022-06-04 21:06:45 760人浏览 薄情痞子
摘要

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

介绍

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


grep [-acinv] [--color=auto] '查找字符串' filename 

参数:

-a :将binary文件以text文件的方式查找数据

-c :计算找到‘查找字符串'的次数

-i :忽略大小写的区别,即把大小写视为相同

-n :顺便输出行号

-v :反向选择,即显示出没有‘查找字符串'内容的那一行

-l :只显示匹配的文件,不显示具体内容

-f<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。

实例:


#取出文件/etc/man.config中包含MANPATH关键词的行,并把找到的关键字加上颜色
grep --color=auto MANPATH /etc/man.config

#把ls -l的输出中包含字母file(不区分大小写)的内容输出
ls -l | grep -i file

#在文件 '/var/log/messages'中查找关键词"Aug" 
grep Aug /var/log/messages 

#在文件 '/var/log/messages'中查找以"Aug"开始的行
grep ^Aug /var/log/messages 

#选择 '/var/log/messages' 文件中所有包含数字的行 
grep [0-9] /var/log/messages 

#在目录 '/var/log' 及随后的目录中搜索字符串"Aug" (递归查找)
grep Aug -R /var/log/* 

#在当前目录搜索带'energywise'行的文件
grep 'energywise' *      

#在当前目录及其子目录下搜索'energywise'行的文件
grep -r 'energywise' *  

#查找指定进程
ps -ef|grep svn

#从文件中读取关键词进行搜索,输出test.txt文件中含有从test2.txt文件中读取出的关键词的内容行
cat test.txt | grep -f test2.txt

grep与正规表达式:

字符类的搜索:如果我想要搜寻 test 或 taste 这两个单字时,可以发现到,其实她们有共通的 ‘t?st' 存在~这个时候,我可以这样来搜寻:


grep -n 't[ae]st' regular_express.txt

其实 [] 里面不论有几个字节,他都谨代表某『一个』字节, 所以,上面的例子说明了,我需要的字串是『tast』或『test』两个字串而已!

字符类的反向选择 [^] :如果想要搜索到有 oo 的行,但不想要 oo 前面有 g,如下


grep -n '[^g]oo' regular_express.txt

字符类的连续:再来,假设我 oo 前面不想要有小写字节,


grep -n '[^a-z]oo' regular_express.txt

当我们在一组集合字节中,如果该字节组是连续的,例如大写英文/小写英文/数字等等, 就可以使用[a-z],[A-Z],[0-9]等方式来书写,那么如果我们的要求字串是数字与英文呢? 呵呵!就将他全部写在一起,变成:[a-zA-Z0-9]。

我们要取得有数字的那一行,就这样:


grep -n '[0-9]' regular_express.txt

行首与行尾字节 ^ $

行首字符:如果我想要让 the 只在行首列出呢? 这个时候就得要使用定位字节了!我们可以这样做:


grep -n '^the' regular_express.txt

开头是小写字节的那一行就列出呢?可以这样:


grep -n '^[a-z]' regular_express.txt

我不想要开头是英文字母,则可以是这样:


grep -n '^[^a-zA-Z]' regular_express.txt

^ 符号,在字符类符号(括号[])之内与之外是不同的! 在 [] 内代表『反向选择』,在 [] 之外则代表定位在行首的意义!

行尾结束为小数点 (.) 的那一行:


grep -n '.$' regular_express.txt

特别注意到,因为小数点具有其他意义(底下会介绍),所以必须要使用转义字符()来加以解除其特殊意义!


#找出空白行
grep -n '^$' regular_express.txt

任意一个字节 . 与重复字节 *

. (小数点):代表『一定有一个任意字节』的意思;

* (星号):代表『重复前一个字符, 0 到无穷多次』的意思,为组合形态


#需要找出 g??d 的字串,亦即共有四个字节, 起头是 g 而结束是 d ,我可以这样做:
grep -n 'g..d' regular_express.txt

#查找至少两个 o 以上的字串,『o*』代表的是:『拥有空字节或一个 o 以上的字节』
grep -n 'ooo*' regular_express.txt

#想要字串开头与结尾都是 g,但是两个 g 之间仅能存在至少一个 o ,亦即是 Gog, goog, gooog.... 等等
grep -n 'goo*g' regular_express.txt

#找出 g 开头与 g 结尾的行,当中的字符可有可无
grep -n 'g.*g' regular_express.txt

#找到两个 o 的字串,可以是:
grep -n 'o{2}' regular_express.txt

#找出 g 后面接 2 到 5 个 o ,然后再接一个 g 的字串,他会是这样:
grep -n 'go{2,5}g' regular_express.txt

#2 个 o 以上的 goooo....g 呢?除了可以是 goo*g ,也可以
grep -n 'go{2,}g' regular_express.txt

#从多个文件中查找关键词
grep 'linux' test.txt test2.txt 

总结

以上就是关于Linux中grep命令的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

--结束END--

本文标题: 深入理解Linux中的grep命令

本文链接: https://www.lsjlt.com/news/19047.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 深入理解Linux中的grep命令
    介绍 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达...
    99+
    2022-06-04
    命令 Linux grep
  • Linux中grep命令详解
    目录一、grep基本介绍二、正则表达式grep实践2.1、输出以 I 开头的行(不区分大小写)2.2、输出以.结尾的行2.3、$符号 注意在linux平台下, 所有文件的结尾都有一个$符可以利用cat -A 查看文件2....
    99+
    2023-02-13
    Linux中grep详解 Linux中grep命令
  • Linux中grep和egrep命令详解
    rep / egrep 语法: grep  [-cinvABC]  'word'  filename -c :打印符合要求的行数 -i :忽略大小写 -n :在输出符合要求的行的同时连同行号...
    99+
    2022-06-04
    Linux grep egrep
  • linux中使用grep命令详解
    linux grep命令 Linux grep命令用于查找文件里符合条件的字符串;也可以用于查找内容包含指定的范本样式的文件。它能使用正则表达式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模式子符串的文件名,并输...
    99+
    2022-06-04
    linux grep
  • Linux中的grep命令介绍
    本篇内容介绍了“Linux中的grep命令介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux 最重要的三个命令在业界被称为三剑客,...
    99+
    2023-06-15
  • 一文带你深入理解Linux中的nohup命令
    目录前言nohup是什么nohup语法规则nohup使用方法后台运行命令标准输出重定向到文件标准错误输出重定向到文件将标准输出和标准错误输出都重定向到文件nohup后台进程管理总结前言 当我们在linux或Unix系统上...
    99+
    2023-03-31
    Linux nohup命令使用 Linux nohup命令 Linux nohup
  • 详解 Shell中的grep命令
    用‘grep'搜索文本文件 如果您要在几个文本文件中查找一字符串,可以使用‘grep'命令。‘grep'在文本中搜索指定的字符串。举个例子:假设您正在‘/usr/src/linux/Documentatio...
    99+
    2022-06-04
    详解 命令 Shell
  • Linux系统中的grep命令怎么用
    本篇内容主要讲解“Linux系统中的grep命令怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统中的grep命令怎么用”吧!在Linux系统中grep时最常用的处理文件的的工具...
    99+
    2023-06-28
  • Linux系统中grep与fgrep命令的使用
    这篇文章主要介绍“Linux系统中grep与fgrep命令的使用”,在日常操作中,相信很多人在Linux系统中grep与fgrep命令的使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统中gre...
    99+
    2023-06-12
  • Linux中常用的一些grep命令总结
    本篇内容主要讲解“Linux中常用的一些grep命令总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux中常用的一些grep命令总结”吧!概述:所有的类linux系统都会提供一个名为gr...
    99+
    2023-06-13
  • 深入理解JavaScript中实例对象和new命令
    目录对象是什么(1)对象是单个实物的抽象(2)对象是一个容器,封装了属性(property)和方法(method)构造函数new命令基本用法new命令的原理new.targetObj...
    99+
    2022-12-22
    js中new实例化过程 js new的过程 js实例对象
  • 深入理解Linux服务器安全性:命令的运用与维护
    Linux服务器的安全性非常重要,因为它承载了许多关键的业务和敏感的数据。为了确保服务器的安全,管理员需要掌握一些关键的命令和维护技...
    99+
    2023-10-18
    Linux
  • C语言之预处理命令的深入讲解
    c提供的预处理功能有: 宏定义 文件包含 条件编译 为了与其她c语句区分,命令经常以符号“#”开头。 宏定义 #define 标识符 字符串 可以避免反复输入字符串...
    99+
    2022-11-12
  • linux 中grep 匹配制表符 和 换行符的命令
    使用: [root@diTPFtbONGLhcp-9-79 ~]# grep $'\n' log.txt [root@dhcp-9-79 ~]# grep $'\t' log.txt 这两个命令 [root...
    99+
    2022-06-04
    grep 匹配换行符 grep 匹配制表符
  • 深入理解Java设计模式之命令模式
    目录一、什么是命令模式二、命令模式的使用场景三、命令模式的优缺点四、命令模式的实现五、总结一、什么是命令模式 命令模式是一个高内聚的模式,其定义为:将一个请求封装成一个对象,从而让你...
    99+
    2022-11-12
  • Linux中的sed命令如何理解
    这篇文章主要为大家分析了Linux中的sed命令如何理解的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux中的sed命令如何理解”的知识吧。sed是一...
    99+
    2023-06-28
  • 如何理解Linux中的sudo命令
    这篇文章主要介绍“如何理解Linux中的sudo命令”,在日常操作中,相信很多人在如何理解Linux中的sudo命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Linux中的sudo命令”的疑惑有所...
    99+
    2023-06-13
  • 深入了解git checkout命令的使用方法
    Git是一种流行的版本控制系统,它允许开发人员跟踪和控制代码的更改。Git有许多命令供使用,其中之一就是git checkout。git checkout命令可以用于切换分支、还原更改以及更改工作目录中文件的状态等。在这篇文章中,我们将深入...
    99+
    2023-10-22
  • 深入理解Go语言文档中的flag.StringVar函数解析命令行参数
    在Go语言中,我们有时需要通过命令行传递参数给程序。为了方便用户设置参数,Go语言提供了flag包来解析命令行参数。其中flag.StringVar函数是flag包中最常用的函数之一,它可以帮助开发者快速的定义并解析命令行参数。本文将深入分...
    99+
    2023-11-03
    Go语言 命令行参数 flagStringVar
  • 深入理解Spring中bean的生命周期介绍
    以ApplocationContext上下文单例模式装配bean为例,深入探讨bean的生命周期:(1).生命周期图:(2).具体事例:person类实现BeanNameAware,BeanFactoryAware接口public clas...
    99+
    2023-05-31
    spring bean 生命周期
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作