Linux中grep命令详解

 更新时间:2023年02月13日 11:15:53   作者:向上的狼  
grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令,这篇文章主要介绍了Linux中grep详解,需要的朋友可以参考下

一、grep基本介绍

全拼:Global search REgular expression and Print out the line.

作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行.

模式:由正则表达式的元字符及文本字符所编写出的过滤条件﹔

grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令

grep命令里的匹配模式就是你想要找的东西,可以是普通的文字符号,也可以是正则表达式

二、正则表达式grep实践

首先先看一下这个测试文件的内容吧

2.1、输出以 I 开头的行(不区分大小写)

注: 这里的-i代表不区分大小写, -n代表显示匹配行和行号

2.2、输出以.结尾的行

注: 因为.在这里有着特殊含义, 所以要用\转义一下, 如果不加转义字符的话, grep就会把它当做正则表达式来处理(.代表的含义是匹配任意一个字符)

2.3、$符号 注意在Linux平台下, 所有文件的结尾都有一个$符可以利用cat -A 查看文件

2.4、^$(代表空行的意思)组合符

找出文件的空行, 以及行号

2.5、.点符号

"."点表示任意一个字符, 有且只有一个, 不包含空行

2.6、*符号

"*"表示找出前一个字符0次或一次以上

找出文件中i出现0次或多次的行和行号

2.7、.*组合符

".*"表示所有内容, 包括空行

2.8、^.*t符 (含义: 以任意内容开头, 直到t结束)

2.9、[abc]中括号

中括号表达式,[abc]表示匹配中括号中任意一个字符, a或b或c,常见的形式如下;

[a-z]匹配所有小写单个字母[A-Z]匹配所有单个大写字母[a-zA-Z]匹配所有的单个大小写字母[0-9]匹配所有单个数字[a-zA-ZO-9]匹配所有数字和字母

匹配abc字符中的任意一个,得到它的行数和行号 

2.10、grep的参数-o

使用"-o"选项, 可以值显示被匹配到的关键字, 而不是讲整行的内容都输出.

显示出文章中有多少行有a

"-c"只统计匹配的行数

2.11、[^abc]中括号中去反

[^abc]或[^a-c]这样的命令, "^"符号在中括号中第一位表示排除, 就是排除字符a,b,c

注: 出现再中括号里的尖角号表示取反

三、扩展正则表达式grep实践

此处使用grep -E进行实践扩展正则, egrep官网已经弃用了

3.1、+号

+号表示匹配前一个字符1一次或多次,必须使用grep-E扩展正则

3.2、?符

匹配前一个字符0次或1次

找出文件中包含gd或者god的行

3.3、|符

竖线|再正则中是或者的意思

找出opt目录中txt结尾的文件, 其名字中包含a或者e, 不区分大小写(-i)

3.4、()小括号

将一个或多个字符捆绑在一起, 当作一个整体进行处理

3.5、{n,m}匹配次数

{n,m}:匹配前一个字符至少n次, 最多m次

{n,}: 匹配前一个字符至少n次, 没有上限

{,m}: 匹配前一个字符最多m次,可以没有

重复前一个字符各种次数, 可以通过-o参数显示明确的匹配过程

到此这篇关于Linux中grep详解的文章就介绍到这了,更多相关Linux中grep详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于Shell脚本效率优化的一些个人想法

    关于Shell脚本效率优化的一些个人想法

    很想像之前的一片Mysql全面优化详解那样子写一篇全面的优化文章,但是苦于没有相关书籍参考,也没有发现网络牛人有总结帖或文章之类的,所以就根据个人理解和经验写一些能优化程序效率的东西吧。这篇是不敢称全面的
    2012-09-09
  • Shell脚本实现从文件夹中递归复制文件

    Shell脚本实现从文件夹中递归复制文件

    这篇文章主要介绍了Shell脚本实现从文件夹中递归复制文件,本文脚本实现从十层左右的文件夹中复制所有文件到一目录中,需要的朋友可以参考下
    2015-02-02
  • Shell iptales防火墙设置的方法步骤

    Shell iptales防火墙设置的方法步骤

    本文主要介绍了Shell iptales防火墙设置的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Shell中实现字符串反转方法分享

    Shell中实现字符串反转方法分享

    这篇文章主要介绍了Shell中实现字符串反转方法分享,本文同时提供了多种语言的实现方法,如awk、python、bash、C语言等,需要的朋友可以参考下
    2014-12-12
  • Shell脚本IF条件判断和判断条件总结

    Shell脚本IF条件判断和判断条件总结

    这篇文章主要介绍了Shell脚本IF条件判断和判断条件总结,本文先是给出了IF条件判断的语法,然后给出了常用的判断条件总结,需要的朋友可以参考下
    2014-10-10
  • Linux中cut命令的基本使用详解

    Linux中cut命令的基本使用详解

    cut命令是一个Linux/Unix命令,用于从文件或标准输入中提取字段并输出到标准输出,这篇文章主要介绍了Linux系统之cut命令的基本使用,需要的朋友可以参考下
    2023-05-05
  • linux下批量删除utf8 bom的实现方法

    linux下批量删除utf8 bom的实现方法

    下面小编就为大家带来一篇linux下批量删除utf8 bom的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • linux iptables防火墙中的工作常用命令

    linux iptables防火墙中的工作常用命令

    linux系统的防火墙,IP信息包过滤u系统,它实际上由两个组件netfilter和iptables组成,这篇文章主要介绍了linux iptables防火墙-工作常用命令,需要的朋友可以参考下
    2022-10-10
  • 开发必备Linux常用的几个命令分享

    开发必备Linux常用的几个命令分享

    Linux作为一个高度成熟和强大的操作系统,拥有非常丰富的命令行工具,对于Java开发者来说,掌握一些常用的Linux命令可以大大提高工作效率,尤其是在服务器端开发时,本文小编给大家分享了一些常用命令,需要的朋友可以参考下
    2023-10-10
  • Linux中的特殊符号与正则表达式

    Linux中的特殊符号与正则表达式

    这篇文章主要介绍了Linux中的特殊符号与正则表达式,需要的朋友可以参考下
    2017-09-09

最新评论