Shell 正则表达式
什么是正则表达式
正则表达式(regular expression,RE)是一种字符模式,用来在查找过程中匹配指定字符。
在大多数程序里,正则表达式被置于两个正斜杠之间。
匹配数字:^[0-9]+$
⇒
\Rightarrow
⇒
^:以某字符开头,[0-9]:0-9中的一个,+:前面的字符出现一次或多次,$:以某字符结尾
匹配Mail:[a-z0-9]-+@[a-z0-9]+.[a-z]+
⇒
\Rightarrow
⇒
\:表示转义,.:表示任意一个字符
匹配IP:[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}
元字符(通配符)
元字符表请看“菜鸟教程”
http://www.runoob.com/regexp/regexp-metachar.html
grep族
- grep: 在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行
- egrep: 扩展的grep,支持更多表达式元字符
- fgrep: 固定grep(fixed grep),有时也称作(fast grep),它按字面届时所有字符
grep命令格式
grep [option] PATTERN filename1 filename2 …
找 到:grep返回0
没找到:grep返回1
找不到文件:grep返回2
常用grep选项
- -i:–ignore-case 忽略大小写
- -l:–files-with-matches 只列出匹配行所在的文件名
- -n:–line-number 在每一行前面加上他在文件中的行号
- -c:–count 显示成功匹配的行数
- -s:–no-messages 禁止显示文件不存在或文件不可读的错误信息
- -q:–quit,–silent 静默
- -v:–invert-match 只显示不匹配的行
- -R(-r): --recursion 递归查找
- -o:–only-matching 只显示匹配内容
- -B:–before-context=NUM print NUM lines of leading context
- -A:–after-context=NUM print NUM lines of trailing context
- -C:–context=NUM print NUM lines of output context