shell脚本之正则表达式

一、基础正则表达式实例:
元字符总结:

在Linux系统中常见的文件处理工具中grep和sed支持基础正则表达式。

grep命令选项:

                        -i:查找时不区分大小写;
                        -v:查找时反向输出,如查找不包含某些字符的内容;
                        -n:表示查找出结果后显示行号;

这三个选项可以结合使用,如“-in”,查找时不区分大小写并显示行号。
示例①:

[[email protected] ~]# grep -n ‘the‘ test.txt                   #查找test文件中包含字符“the”的行
#可以将选项改为“-vn”来查找不包含“the”的行。

示例②:

[[email protected] ~]# grep -n "sh[io]rt" test.txt                   #[io]表示匹配 i 或o的显示出来
#[ ]中无论有几个字符都仅代表匹配一个字符即可。

示例③:

[[email protected] ~]# grep -n ‘oo‘ test.txt                 #查找包含字符“oo”的行。
[[email protected] ~]# grep -n ‘ooo*‘ test.txt              #查找包含至少两个o以上的字符串。
[[email protected] ~]# grep -n ‘o\{2\}‘ test.txt             #查找包含两个“o”的字符串。
 [[email protected] ~]# grep -n ‘o\{2,5\}‘ test.txt          #查找包含2~5个o的字符串。
 [[email protected] ~]# grep -n ‘o\{2,\}‘ test.txt             #查找包含两个以上“o”的字符串。

示例④:

[[email protected] ~]# grep -n ‘[^w]oo‘ test.txt           #查找“oo”前面不是w的字符串。
[[email protected] ~]# grep -n ‘[^a-z]oo‘ test.txt          #查找oo前不是小写字母的行。
[[email protected] ~]# grep -n ‘[0-9]‘ test.txt               #查找包含数字的行。
[[email protected] ~]# grep -n ‘^the‘ test.txt             #查找以“the”开头的行。
[[email protected] ~]# grep -n ‘^[a-z]‘ test.txt             #查找以小写字母开头的行。
[[email protected] ~]# grep -n ‘^[A-Z]‘ test.txt            #查找以大写字母开头的行。
[[email protected] ~]# grep -n ‘^[^a-zA-Z]‘ test.txt       #查找不以字母开头的行。
#     “^”在[ ] 号外面表示定位行首,也就是以某些内容开头,若在[ ]内则表示反向选择。
[[email protected] ~]# grep -n ‘\.$‘ test.txt             #查找以 “ .  ” 结尾的行。
[[email protected] ~]# grep -n ‘w..d‘ test.txt             #查找w开头,中间两个未知字符,d结尾的行。
[[email protected] ~]# grep -n ‘woo*d‘ test.txt     #查找w开头d结尾,中间至少包含一个o的字符串。
[[email protected] ~]# grep -n ‘w.*d‘ test.txt        #查找w开头d结尾,中间的字符可有可无的字符串。
[[email protected] ~]# grep -n ‘[0-9][0-9]*‘ test.txt            #查询任意数字所在行

二、扩展正则表达式
一般来说基础正则表达式足以我们使用了,但如果想要简化整个指令,那么就可以使用扩展正则表达式,如果使用扩展正则表达式,需要使用egrep或awk命令,常见的扩展正则表达式的元字符主要包括如下几个:

原文地址:https://blog.51cto.com/14154700/2400958

时间: 2024-11-09 02:59:48

shell脚本之正则表达式的相关文章

shell脚本及正则表达式

shell脚本的编写及正则表达式: 一.shell脚本的基本: 1.首先shell脚本到底是什么? 1)纯文本文档--文件中所存储的数据都是以字符为单位进行存储的: 2)根据用户的需求来解决用户问题的大量命令的组合体 3)"执行幂等性"--任何命令多次执行的结果是一致的 注意:很多命令都不具备"执行幂等性",在shell脚本中就需要大量的程序逻辑来判断某个命令是否满足其运行条件,以避免在运行过程中出现严重错误. 2.脚本的基本代码内容: 1)首先我们可以利用文本编辑

shell脚本之正则表达式(二)---sed工具

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

linux学习笔记-第十二课-Shell脚本之正则表达式(一)

一.grep,egrep,fgrep 1)grep 格式:grep [选项] [模式] [文件名] 常用选项:-n:显示行号和匹配的行 -v:反向匹配 -c:不显示匹配的行,只显示匹配的行数 -i:忽略大小写 -r:递归搜索 -E:支持扩展正则表达式 -P:支持Perl正则表达式 -F:不支持正则表达式,将模式按字面意义匹配 示例: grep示例 说明 grep '\<Tom>\' file 显示包含单词Tom的行 grep 'Tom Jerry' file 显示包含'Tom Jerry'的行

shell脚本学习—正则表达式

正则表达式概念.特点 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”, 这个“规则字符串”用来表达对字符串的一种过滤辑. 给定一个正则表达式和另一个字符串,我们可以达到如下的目的: 1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”): 2. 可以通过正则表达式,从字符串中获取我们想要的特定部分. 正则表达式的特点是: 1. 灵活性.逻辑性和功能性非常的强: 2. 可以迅速地用极简单的方式达到字符串的复杂控制. 3.

shell脚本之正则表达式(一)

正则表达式的定义 正则表达式又称正规表达式.常规表达式.正则表达式是由普通字符与元字符组成的文字模式.模式用于描述在搜索文本时要匹配的一个或多个字符串.正则表达式一般用于脚本编程与文本编辑器中.很多文本处理器与程序设计语言均支持正则表达式,在Linux 系统中常见的文本处理器如grep.egrep.sed.awk.正则表达式具备很强大的文本匹配功能,能够在文本海洋中快速高效地处理文本. 正则表达式用途 正则表达式对于系统管理员来说是非常重要的,系统运行过程中会产生大量的信息,这些信息有些是非常重

shell脚本之正则表达式(四)---sort与uniq工具

sort 工具 sort 是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序. sort 语法 sort [选项] 参数 sort常用选项 -f:忽略大小写 -b:忽略每行前面的空格 -M:按照月份进行排序 -n:按照数字进行排序 -r:反向排序 -u:表示相同的数据仅显示一行(去除不连续的重复) -t:指定分隔符,默认使用[Tab]键分隔 -o <输出文件>:将排序后的结果转存至指定文件 -k:指定排序区域 范例演示 将/etc/passwd 文件中第三列进行排序,并将

shell脚本正则表达式三剑客之一(grep,egrep)

Shell脚本之正则表达式 一.正则表达式三剑客之一:grep 1.学习正则表达式前我们拿一个无用的配置文件作为测试练习 [[email protected] ~]# vim chen.txt #version=DEVEL System authorization information auth --enableshadow --passalgo=sha512# Use CDROM installation media cdrom thethethe THE THEASDHAS Use gra

#7 shell脚本编程之正则表达式

多命令执行方法: 脚本组成: 1.shengbang 2.# 3.空白行--没有任何内容的行.只包含空白字符或制表符(TAB) 4.逻辑判断 shell脚本编程: 1.加执行权限,通过路径来调用脚本: 2.利用解释器直接执行: 本文处理工具: vim.vi.nano 文本处理三剑客: grep系: grep.egrep.fgrep,文本搜索工具,基础"pattern"对于给定的文本进行模糊搜索,grep系默认工作于贪婪模式下: sed:stream editor,流数据器,行编辑器,文

正则表达式和Shell脚本。

正则表达式分两类:基本正则表达式:BRE扩展正则表达式:EREgrep -E, egrep正则表达式引擎:采用不同算法,检查处理正则表达式的软件模块PCRE元字符分类:字符匹配.匹配次数.位置锚定.分组 基本正则表达式元字符字符匹配:. 匹配任意单个字符[] 匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z] [a-zA-Z][^] 匹配指定范围外的任意单个字符[:alnum:] 字母和数字[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z[:lower:]