Shell 与正则表达式part1

1.什么是shell?

shell代表两个层面的意思,一个是命令解释器,比如:BASH,另外一个是shell脚本(利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,以达到我们所想要的处理目的。)

2.通配符是被shell解释的,由shell 负责预先先解析后,将处理结果传给命令行。  通配符------>用shell来解释的

3.元字符是被shell解释的。

4.正则表达式是由命令解释的。   grep -* tools ---->*是grep命令来解释的

5.下面我们就为大家介绍三种文本处理工具/命令:grep、sed、awk,它们三者均可以解释正则。

  (1)grep命令       grep命令+正则表达式<匹配字符串>

参数

-n  :显示行号
-o  :只显示匹配的内容
-q  :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容

-l  :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl ‘root‘ /etc 
-A  :如果匹配成功,则将匹配行及其后n行一起打印出来
-B  :如果匹配成功,则将匹配行及其前n行一起打印出来
-C  :如果匹配成功,则将匹配行及其前后n行一起打印出来
--color
-c  :如果匹配成功,则将匹配到的行数打印出来
-E  :等于egrep,扩展
-i  :忽略大小写

-v  :取反,不匹配
-w:匹配单词

grep种类
grep
fgrep
pgrep
egrep

正则介绍

^ 行首
$ 行尾
. 除了换行符以外的任意单个字符
* 前导字符的零个或多个
.* 所有字符
[] 字符组内的任一字符
[^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)
^[^] 非字符组内的字符开头的行
[a-z] 小写字母
[A-Z] 大写字母
[a-Z] 小写和大写字母
[0-9] 数字
\< 单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词
\> 单词尾

详情可访问如下网址:http://www.runoob.com/regexp/regexp-syntax.html

时间: 2024-11-06 08:40:29

Shell 与正则表达式part1的相关文章

shell中正则表达式元字符

'.'    匹配任一字符 '*'   指定*前的字符可以连续重复使用任意次 '^'   字符串开头 '$'   字符串结尾 '.*'   任意数量的字符 '\'     转义字符 '[...]' 匹配任一字符 '[^...]' 不匹配任一字符,取反 '\(....\)'  标记匹配字符,后续通过转义序列进行引用,例如\(grep\).*\1,匹配2个grep中间带有任意数目的字符 '\n'  重复在\(...\) 内的第n个模式 x\{m,n\} 区间表达式,匹配x字符出现的次数区间.x\{n

Shell 编程 正则表达式

本篇主要写一些shell脚本正则表达式的使用基础. 概述 正则表达式分为基础正则表达式(Regular Expression)与扩展正则表达式(Extended Regular Expression). 它不是一个工具程序,而是一个字符串处理的标准依据,是使用单个字符串搜索.匹配一系列符合某个语法规则的字符串. 它由普通字符(a~z)以及特殊字符(元字符)组成. linux 文本处理工具 文本处理工具 基础正则表达式 扩展正则表达式 vi编辑器 支持 / grep 支持 / egrep 支持 支

shell 脚本-正则表达式

字符类 (Character Class):如上例的x 和y,它们在模式中表示一个字符 ,但是取值范围是 一类字 符中的任意一个. 数量限定符 (Quantifier): 邮件地址的每一部分可以有一个或多个 x字符 ,IP地址的每一部 分 可以有 1-3个y 字符 位置限定符 (Anchor):描述各种字符类以及普通字符之间的位置关系,例如邮件地址分三 部分,用普通字符 @和 .隔 开 ,IP地址分四部分 ,用 .隔开 ,每一部分都可以用字符类和数量限定符 描述.为了表示位置关系 ,需要位置限定

Linux学习-shell利用正则表达式验证邮箱合法性

引文:在今天这个时代,Email已经成为一种重要的通信方式.给导师发邮件,学术研究之间的交流,etc.常常用到Email,然而Email的验证却有点小难度,下面给出一个在Linux下使用shell脚本编写的一个实例. linux中将正则表达式和sed.gawk结合起来,功能非常强大.我说的是真的,没骗你的,好好学吧. 邮箱验证 Email地址的基本格式为: username@hostname 1.username部分模式匹配 username的值可以用字符数子字符以及以下特殊字符: 点号 单破折

shell及正则表达式

shell 表达式 -d file  是否存在而且为目录 -f file    文件是否存在,且为普通文件 -w file    文件是否存在且可写 -s file    文件是否存在且非空 -n string    字符串长度非0 string1=string2    字符串相等 -eq     等于 -gt      大于 -lt       小于 -e  file       文件是否存在 -r   file       文件是否存在且可读 -x   file        文件是否存在且

Linux学习笔记:Shell基础正则表达式

Shell中经常用到正则表达式的命令包括grep.sed.awk 用于测试的文件内容 [[email protected] ~]# vi testfile Current Network Status Last Updated: Mon Feb 15 10:55:06 CST 2016 Updated every 90 seconds Nagios Core 4.1.1 - www.nagios.org Logged in as admin I like google It's Google, 

shell编程-正则表达式

1.正则表达式是什么 它主要用于字符串的模式分割,匹配,查找及替换操作. 2.正则表达式与通配符 正则表达式用来在文件中匹配符合条件的字符串,正则包含匹配.grep,awk,sed等命令可以支持正则表达式. 通配符用来匹配符合条件的文件名,通配符是完全匹配.ls ,find,cp这些命令不支持正则表达式,所以只能使用shell自己的通配符进行匹配了. 3.基础正则表达式 .相当于通配符的? [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} [0-9]\{1,3\}\.[0-9]\

Linux Shell编程 - 正则表达式

一.基础正则表达式 1.正则表达式:正则表达式是用来在文件中匹配符号条件的字符串,正则是包含匹配 grep.awk.sed等命令可以支持正则表达式. 2.通配符:用来匹配符合条件的文件名,通配符是完全匹配.ls.find.cp这些命令不之处正则表达式, 所以只能使用 shell 自己的通配符来进行匹配了. 3.基础正则表达式

Shell基本正则表达式和扩展正则表达式

BRE和ERE的区别 基本正则表达式(BRE)和扩展正则表达式(ERE)的区别仅仅是元字符(meta charactor)的区别而已. BRE: 只有^$.*[]是元字符 ERE: ^$.[]*+(){}?|都是元字符 BRE和ERE的元字符 参考:Shell正则表达式 示例 $echo "abcdefg" | grep 'a.+g' #不匹配任何字符串 $echo "abcdefg" | grep 'a.\+g' #匹配整个字符串 $echo "abcd