正则表达式和Shell脚本。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式和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:]]*$ 空白行
< 或  词首锚定,用于单词模式的左侧
> 或  词尾锚定,用于单词模式的右侧
<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

以上是关于正则表达式和Shell脚本。的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本学习笔记12-正则表达式

shell脚本——正则表达式(包含grep详细介绍及应用)

如何在 shell 脚本中使用正则表达式?

shell脚本——正则表达式Sed与Awk文本处理工具详解

shell脚本之正则表达式

Shell脚本——正则表达式