正则表达式之grep命令
来源:互联网 发布:整体厨房设计软件 编辑:程序博客网 时间:2024/06/06 13:57
本文的正则表达式是grep命令的规范,与ls、find等命令的规范有所差别。
不管在什么命令中,正则表达式最好使用双引号引起来,防止被当成是命令。
grep元字符集
\ : 通常用于打开或关闭后续字符的特殊含义,如\(...\)与\{...\}
^ :锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$ :锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
. :匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
* :匹配零个或多个先前字符。 .*一起用代表任意长度任意字符。
[] :匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^] :匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
\(..\) :标记匹配字符,如'\(love\)',love被标记为1。 如\(ab\).*\1 : 指匹配ab组合的两次重现,中间可存在任意数目的字符。 可以将最多9个独立的子模式存储在单个模式中
x\{m\}: 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。如果x是不确定字符,比如[:digit:]\{5\}表示出现5个数字
x\{m,\} :重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\}:重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w :匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\b :单词锁定符,如: '\bgrep\b'只匹配grep。
示例
在first.sh文件中,有以下的内容
pshiz@163.com
pshiz@163com
pshiz@163.com.
pshiz@
@163.com
pshiz@mail2.sysu.edu.cn
pshiz@126.com
yangr@163.com
pp@163.com
1)找出含有163的行
> grep "163" first.sh
2)找出以cn结尾的行
> grep "cn$" first.sh
3)找出其中字符长度为7的行
> grep "^.......$" first.sh
4)找出163邮箱格式正确的行(用户名为数字、字母和下划线)
> grep "^[[:digit:][:alpha:]_]\{1,}@163\.com" first.sh
注意:"[[:digit:][:alpha:]_]*@163\.com"是不对的,@163.com这一行也会被包含
5)找出邮箱格式正确的行(假设格式是xx@xx.xx.xx,每个xx都是数字、字母和下划线的组合)
> grep "^[[:digit:][:alpha:]_]\{1,\}@\([[:digit:][:alpha:]_]\{1,\}\.\)\{1,\}[[:digit:][:alpha:]_]\{1,\}$" first.sh
易错:切记开头符号^与结束符号$的使用
- 正则表达式之grep命令
- 正则表达式之grep
- 正则表达式之grep
- 正则表达式之grep
- 正则表达式之grep
- 正则表达式之grep
- grep 命令系列:grep 中的正则表达式
- grep 命令系列:grep 中的正则表达式
- 正则表达式 grep等命令
- grep命令正则表达式总结
- grep命令+正则表达式
- grep命令和正则表达式
- grep命令与正则表达式
- grep命令使用-正则表达式
- Linux之正则表达式grep
- Linux grep命令与正则表达式学习
- 正则表达式和grep命令的使用
- Linux 的grep命令与正则表达式
- 云存储需实现虚拟化、集群管理
- Xcode封装.Bundle文件
- Cortana(小娜)那些事儿
- VBS基础篇 - 内置函数 - 其他函数
- Windows 驱动开发基础(九)内核函数
- 正则表达式之grep命令
- MySQL错误2003:Can't connect to MySQL server (10060)
- springMVC中遇到的问题
- Asmack之旅(二)packet扩展
- 求字符串最大的重复字串
- VBS基础篇 - 杂项 - 字符集
- UVA - 1404 Prime k-tuple (素数筛选)
- 如何修改android工程的包名
- IIR 滤波器的实现(C++)