正则表达式 分两类: 基本正则表达式: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