正则表达式和Shell脚本。

正则表达式
分两类:
基本正则表达式:BRE
扩展正则表达式:ERE
grep -E, egrep
正则表达式引擎:
采用不同算法,检查处理正则表达式的软件模块
PCRE
元字符分类:字符匹配、匹配次数、位置锚定、分组

基本正则表达式元字符
字符匹配:
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z] [a-zA-Z]
[^] 匹配指定范围外的任意单个字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母 [:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:print:] 可打印字符
[:punct:] 标点

匹配次数:用在要指定次数的字符后面,用于指定前面的字符要出现的次数

  • 匹配前面的字符任意次,包括0次
    贪婪模式:尽可能长的匹配
    .* 任意长度的任意字符
    \? 匹配其前面的字符0或1次
    + 匹配其前面的字符至少1次
    {n} 匹配前面的字符n次
    {m,n} 匹配前面的字符至少m次,至多n次
    {,n} 匹配前面的字符至多n次
    {n,} 匹配前面的字符至少n

位置锚定:定位出现的位置
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
^PATTERN$ 用于模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
\< 或 \b 词首锚定,用于单词模式的左侧
\> 或 \b 词尾锚定,用于单词模式的右侧
\<PATTERN\> 匹配整个单词

Shell程序:提供了编程能力,解释执行
shell编程:过程式、解释执行
编程语言的基本结构:
各种系统命令的组合
数据存储:变量、数组
表达式:a + b
语句:if
shell脚本:
包含一些命令或声明,并符合一定格式的文本文件
格式要求:首行shebang机制
#!/bin/bash
#!/usr/bin/python
#!/usr/bin/perl
shell脚本的用途有:
自动化常用命令
执行系统管理和故障排除
创建简单的应用程序
处理文本或文件

创建shell脚本
第一步:使用文本编辑器来创建文本文件
第一行必须包括shell声明序列:#!
示例:#!/bin/bash
添加注释
注释以#开头
第二步:运行脚本
给予执行权限,在命令行上指定脚本的绝对或相对路径
直接运行解释器,将脚本作为解释器程序的参数运行

脚本代码开头约定
1、第一行一般为调用使用的语言
2、程序名,避免更改文件名为无法找到正确的文件
3、版本号
4、更改后的时间
5、作者相关信息
6、该程序的作用,及注意事项
7、最后是各版本的更新简要说明
shell脚本示例
#!/bin/bash

------------------------------------------

Filename: hello.sh

Revision:

Date: 2018/12/23

Author:

Email:

Website:

Description:

Copyright:

License:

------------------------------------------

echo “hello ”

脚本调试
检测脚本中的语法错误
bash -n
调试执行
bash -x

原文地址:http://blog.51cto.com/14127497/2334264

时间: 2024-11-07 14:45:52

正则表达式和Shell脚本。的相关文章

文本处理工具和正则表达式、shell脚本编程基础-第四周

第四周-文本处理工具和正则表达式.shell脚本编程基础1. 统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户的个数,并将用户都显示出来grep -v '/sbin/nologin' /etc/passwd|wc -lgrep -v '/sbin/nologin' /etc/passwd|cut -d: -f12. 查出用户UID最大值的用户名,UID及shell类型.cut -d: -f1,3,7 /etc/passwd|sort -t: -k2 -nr

文本处理工具和正则表达式、SHELL脚本编程

一.文本编辑工具VIM ●命令模式 --> 插入模式 i     insert, 在光标所在处输入 I     在当前光标所在行的行首输入 a    append, 在光标所在处后面输入 A    在当前光标所在行的行尾输入 o    在当前光标所在行的下方打开一个新行 O   在当前光标所在行的上方打开一个新行 ●插入模式 --- ESC-----> 命令模式 ●命令模式 ----:----> 扩展命令模式 ●扩展命令模式 ---ESC,enter---->命令模式 1.进入编辑

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

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

shell脚本及正则表达式

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

Shell脚本应用之正则表达式详解

通过Shell脚本应用(一).Shell脚本应用(二).Shell脚本应用(三)这几篇博文,我们已经掌握了Shell脚本的编写规则和各种语句的具体应用,但是实际生产环境中,Shell脚本通常与正则表达式.文本处理工具结合使用.我们就来认识一下"正则表达式(RE)". 正则表达式概述 1.正则表达式的定义 正则表达式又称正规表达式.常规表达式.在代码中常简写为regex.regexp或RE.正则表达式是使用单个字符串来描述,匹配一系列符合某个句法规则的字符串.简单的说,正则表达式是一种匹

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

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

Shell脚本——正则表达式(一)

正则表达式的概念 正则表达式:使用单个字符串来描述.匹配一系列符合某个句法规则的字符串由普通字符与特殊字符组成,一般用在脚本编程.文本编辑器中,如php.python.she等,简写为regex.regexp. 用来检索.替换符合模式的文本,具有强大的文本匹配功能能够在文本海洋中快速高效地处理本文 基础正则表达式 正则表达式的字符串表达方法根据不同的严谨程度与功能分为基本正则表达式与扩展正则表达式.基础正则表达式是常用的正则表达式的最基础的部分.在 Linux 系统中常见的文件处理工具中 gre

Shell脚本——正则表达式

正则表达式的概念 正则表达式:使用单个字符串来描述.匹配一系列符合某个句法规则的字符串由普通字符与特殊字符组成,一般用在脚本编程.文本编辑器中,如php.python.she等,简写为regex.regexp. 用来检索.替换符合模式的文本,具有强大的文本匹配功能能够在文本海洋中快速高效地处理本文 基础正则表达式 正则表达式的字符串表达方法根据不同的严谨程度与功能分为基本正则表达式与扩展正则表达式.基础正则表达式是常用的正则表达式的最基础的部分.在 Linux 系统中常见的文件处理工具中 gre

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