定制小程序开发Linux中grep详解

一、grep基本介绍

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

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

模式:定制小程序开发由正则表达式的元字符定制小程序开发及文本字符所编写出的过滤条件﹔


是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参数显示明确的匹配过程

 

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发