Shell脚本笔记
grep和egrep用法
1、 grep和egrep只有很小的区别,egrep是grep的扩展,支持更多的re元字符,grep可以通过-E命令选项来使用egrep。
2、 grep与egrep命令选项
-? 同时显示匹配行上下的?行,例:grep -2 pattern filename同时显示匹配行的上线2行
-c只打印匹配的行数,不显示匹配内容
-f File --file=fileName 从文件中提取模板,空文件包含0个模板,什么都不显示
-h --no-filename 当搜索多个文件时,不显示匹配的文件前缀
-i --ignore-case 忽略大小写
-q --quiet 取消显示,只返回退出状态,0表示找到了匹配行
-I --file-with-match 打印匹配模板的文件清单
-L --file-without-macth 打印不匹配的文件清单
-n --line-number在匹配的行前面的行号
-s --silent 不显示关于不存在或者无法读取文件的错误信息
-v --revert-macth反检索只显示不存在的行
-w –word-regexp如果被\引用,就把表达式作为一个单词搜索
3、 POSIX字符集
为了在不同的国家的字符集中保持一致,posix增加了特殊的字符类,如[:alnum:]是A-Za-z0-9的另一个写法,要把他们放在[]中才能成为正则表达式,如[A-Za-z0-9]或[[:alnum:]]。
[[:alnum:]] 文字数字字符
[[:alpha:]] 文字字符
[[:digit:]] 数字字符
[[:graph:]] 非空字符(非空格,控制字符)
[[:lower:]] 小写字符
[[:cntrl:]] 控制字符
[[:print:]] 非空字符(包括空格)
[[:punct:]] 标点符号
[[:space:]] 所有空白字符(新行,空格,制表符)
[[:upper:]] 大写字符
[[:xdigit:]] 十六制数字(0-9,a-f,A-F)