Shell编程三剑客之grep

正则表达式

正则表达式的定义:
正则表达式又称正规表达式、常规表达式。在代码中常简写为 regex、regexp 或 RE。正则表达式是使用单个字符串来描述、匹配一系列符合某个句法规则的字符串,简单来说, 是一种匹配字符串的方法,通过一些特殊符号,实现快速查找、删除、替换某个特定字符串。
基础正则表达式
以httpd配置文件为例
为了防止失误对httpd的配置文件造成损坏,首先我们先拷贝一份httpd配置文件到别处。

1)、查找特定字符
可从httpd.txt文件中查找出特定字符“the” 所在位置
可以使用命令:grep -n ‘the‘ httpd.txt

查找不包含“the”字符的行
可以使用命令:grep -vn ‘the‘ httpd.txt

2)、利用中括号“[]”来查找集合字符
想要查找“then”与“they”这两个字符串时,可以发现这两个字符串均包含“the”。此时执行以下命令:grep -n ‘the[ny]‘ httpd.txt
即可同时查找到“then”与“they”这两个字符串。“[]”中无论有几个字符,都仅代表一个字符,也就是说“[ny]”表示匹配“n”或者“y”。

查找包含重复单个字符“oo”时
可以使用命令:grep -n ‘oo‘ httpd.txt

查找“oo”前面不是“r”的字符串
可以使用命令:grep -n ‘[^r]oo‘ httpd.txt

若不希望“oo”前面存在大写字母,可以使用“grep –n‘[^A-Z]oo‘httpd.txt”命令实现

查找包含数字的行可以通过“grep –n ‘[0-9]‘ httpd.txt”命令来实现

3)、查找行首“^”与行尾字符“$”
查询大写字母开头的行使用grep -n ‘^[A-Z]‘ httpd.txt

查询“.”结尾的行使用grep -n ‘.$‘ httpd.txt
因为小数点(.) 在正则表达式中也是一个元字符(后面会讲到),所以在这里需要用转义字符“\”将具有特 殊意义的字符转化成普通字符。

查询空白行时,执行“grep –n ‘^$’ httpd.txt”命令

4)、查找任意一个字符“.”与重复字符“*”
在正则表达式中小数点(.)也是一个元字符,代表任意一个字符,例如,查找以r开头,t结尾,中间两个未知字符的字符串,可以使用命令grep -n ‘r..t‘ httpd.txt。

查询包含至少两个 o 以上的字符串,则执行“grep –n ‘ooo*’ httpd.txt”命令即可。

5)、查找连续字符范围“{}”
因为“{}”在 Shell 中具有特殊 意义,所以在使用“{}”字符时,需要利用转义字符“\”,将“{}”字符转换成普通字符
(1)查询两个 o 的字符
grep -n ‘o{2}‘ httpd.txt

原文地址:https://blog.51cto.com/14449528/2441306

时间: 2024-07-31 19:16:24

Shell编程三剑客之grep的相关文章

Shell编程三剑客详解

在Linux/UNIX系统中包含很多文本处理器或文本编辑器,其中grep.sed和awk是shell编程中经常用到的文本处理工具,因此,被业内的人广泛的称之为"shell编程三剑客". grep命令工具 grep命令工具,在日常生活中,会经常用到,这里也就不多说了,如果有不明白的朋友,请参考博文:Shell脚本应用之正则表达式详解,里面详细介绍了grep命令的相关参数及使用, sed命令工具 sed是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑,最

正则表达式及编程三剑客(grep、sed、awk)命令详解

博文大纲:一.正则表达式(1)正则表达式的定义(2)正则表达式用途1.基础正则表达式(1)grep命令工具2.扩展正则表达式二.文本编辑处理器1.grep命令工具2.sed命令工具3.awk命令工具 一.正则表达式 (1)正则表达式的定义 正则表达式又称正规表达式.常规表达式.在代码中常简写为regex.regexp或RE.正则表达式是使用单个字符串来描述,匹配一系列符合某个句法规则的字符串.简单的说,正则表达式是一种匹配字符串的方法,通过一些特殊符号,实现快速查找.删除.替换某个特定字符串.

Shell编程三剑客之sed

sed工具 sed简介:sed是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加.移动等),最后输出所有行或者仅输出处理的某些行.sed 也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于 Shell 脚本中,用以完成各种自动化处理任务.sed工作流程:读取:sed 从输入流(文件.管道.标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space).执行:默认情况下,所有的 sed 命令都在模式空间中顺

Shell编程之正则表达式(二)

文本处理器 在 Linux/UNIX 系统中包含很多种文本处理器或文本编辑器,其中包括我们之前学习过的VIM 编辑器与 grep 等.而 grep.sed.awk 更是 shell 编程中经常用到的文本处理工具,被称之为 Shell 编程三剑客. sed 工具 sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加.移动等),最后输出所有行或者仅输出处理的某些行.sed 也可以在无交互的情况下实现相复杂的文本处理

编程语言和shell编程的基础内容以及grep、egrep命令及相应的正则表达式和用法

bash的特性之多命令执行的逻辑关系: 1.命令替换(命令之间无明确的逻辑依赖关系) COMMAND1 $(COMMAND2) 2.管道(命令之间无明确的逻辑依赖关系) COMMAND1 | COMMAND2 | COMMAND3 前面的命令无论执行成功与失败后面命令继续执行:管道命令的前一个命令应该有标准和输出否则用":"隔开 例如:useradd sola :echo 456 | passwd --stdin sola 3.顺序执行结构 COMMAND1:COMMAND2:COMM

shell三剑客之grep!

背景 对于很多的测试人员来说,grep命令都很熟悉,用的最多的比如去查找指定的进程:ps -ef | grep *** 其中***为进程名或进程号,这里我们只用到的grep的最基础功能-从标准输出中过滤指定的字符串,实际上grep的功能远不止如此. 这篇文章给大家来介绍下grep的进阶及高阶用法,来帮助我们在测试工作中提升效率. grep的全称:Global search Regular Expression and Print out the line. 是一种强大的文本搜索工具,它能使用特定

shell编程基础(一)

shellshell脚本编程:    1)什么叫编程,编程就是编写程序源代码.为了能够让用户在使用计算机的时候,可以让计算机以非交互式的方式完成某   些任务,需要将这些任务编制称为一个文件,让计算机顺序读取,从而实现功能: 2)编程语言:        高级语言:            根据源代码的处理方式:                编译运行语言:                    源代码 --> 编译器(编译) --> 汇编器(汇编) --> [链接器(库的链接)] --&

精讲shell基础以及如何高效的学习shell编程

1.前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚本的内容.每一个合格的Linux系统管理员或运维工程师,都需要熟练的编写Shell脚本语言,并能够阅读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础 1.2 学好Shell编程所需的基础知识

linux基础学习-17-linux操作系统之Shell编程基础讲解

1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚本的内容.每一个合格的Linux系统管理员或运维工程师,都需要熟练的编写Shell脚本语言,并能够阅读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础. 1.2 学好Shell编程所需的基础知识