shell中的正则表达式
2016-05-29 23:43
381 查看
1、正则与通配符
linux中的通配符是用来匹配文件名的,其匹配是完全匹配。只支持通配符则命令有ls find cp等命令正则是用来匹配字符串的,是包含匹配。只要搜索的内容在某个字符串中,那么改字符串则被认为符合条件,支持的命令有grep awk sed。
2、规则
![](https://images2015.cnblogs.com/blog/872539/201605/872539-20160529224634147-729104279.png)
![](https://images2015.cnblogs.com/blog/872539/201605/872539-20160529225338319-2027454240.png)
![](https://images2015.cnblogs.com/blog/872539/201605/872539-20160529225533600-922460783.png)
![](https://images2015.cnblogs.com/blog/872539/201605/872539-20160529225949647-1076736672.png)
空白行的匹配,我们先看一下有空白行的文本文件是什么样的?
![](https://images2015.cnblogs.com/blog/872539/201605/872539-20160529230551913-1004535646.png)
可以看到,当我们在写完一行属于回车时,其实是以$为结束标志的。所以正则表达式中匹配某行以xx结尾(如:.html$)结尾是由此而来的。图中的第三行是由多个空格组成的。那么我们如何去掉文本中的空白行呢?
![](https://images2015.cnblogs.com/blog/872539/201605/872539-20160529231710053-1819174431.png)
注意这里的^有两个含义:表示开头,也表示非。
![](https://images2015.cnblogs.com/blog/872539/201605/872539-20160529233604944-982763314.png)
可以看到当匹配“^$”时,只显示出第二行,这表示以$开头的行。而当匹配“[^$]”时只有第二行没有显示。这时如果单纯将^理解为非时,则表示匹配没有$的行,那结果应该是都不显示。所以这里的^应该也有以$为开始的意思。
相关文章推荐
- Shell语法速查
- 使用xshell登陆腾讯云主机
- 一天一Shell
- java 调用shell命令
- 学习 shell —— 相对路径转换为绝对路径
- 学习 shell —— 参数的解析:$0/1/2、$#、 $@、$?(set -e)
- Linux Shell角本中的条件判断
- shell(十一)切割文件
- Linux Shell 文本处理工具
- 连载shell(一): 交互式脚本,随日期变化,数值运算
- Shell编程中Shift的用法
- shell脚本的使用---cut截取数据
- 终极Shell---zsh
- linux shell中if的用法
- linux shell数组
- shell 解析 json
- 命令行shell 用于SQLite
- shell的比较运算符
- shell命令-dpkg
- 360浏览器无法打开Internet选项