正则表达式

正则表达式的特殊符号:

[:alnum:] 代表英文大写字母和数字

[:alpah:] 代表英文大小写字母

[:blank:] 代表空格和TAB

[:cntrl:] 键盘上的控制按键:EG: CR,LF,TAB,DEL

[:digit:] 代表数字

[:graph:] 代表空白符意外的其他

[:lower:] 小写字母

[:print:] 可以被打印出来的任何字符

[:punct:] 代表标点符号

[:upper:] 代表大写字符

[:space:] 任何会产生空白的字符如空格,TAB,CR,etc

[:xdigit:] 代表16进位的数字类型

 

shell里查找小写字母:

  $ grep -n '[[:lower:]]' file_name

蓝色为匹配成功的字符

 

由于不同语系的编码数据不同,所以造成不同语系的数据选取结果有所不同。因此要特别留意。

======================================================

grep命令

参数说明:

-a 将binary档案以text档案的方式搜寻数据

-c 计算找到‘搜寻字符串’的次数

-i 忽略大小写的不同,所以大小写视为相同

-n 输出行号

-v 反向选择,即显示出没有‘搜寻字符串’内容的那一行

=====================================================

字符组匹配:

[]中包含的任意一个字符(字符串),只能是一个。

字符组支持连字符-表示一个范围。

[^...]排除型字符组,排除后面的字符。

eg:

  $ [^a1<] 排除a,1,<外的其他任意一个字符

查找字符“oog”,同时不想要字符前有g:

  $ grep -n '[^g]oog' file_name

=====================================================

行首行尾的查找:

'^[A-Z]' 查找行首内容为大写字母的

'[^A-Z]' 查找行首内容非大写字母的所有字符

'char$' 以char字母结尾的行

过滤掉空白行: '^$'

过滤掉注释行: '^#' (以#号开头)

====================================================

. : 小数点表示任意一个字符

* : 星号表示重复前面0个或任意多个字符

eg:

  e* 具有0个或多个e

  ee* 第一个e必须存在,第二个e可以有0个或任意多个

====================================================

限定连续字符范围:

{}:可限制一个范围区间内的重复字符数,shell中需要用到转义\

查找连续的两个o字符:

  $ grep -n 'o\{2\}' file_name  查找连续的两个o字符

{n,m} 找出n到m个前一个字符

{n,} 找出n个以上的前一个字符

 

posted @ 2015-06-06 23:54  niceforbear  阅读(198)  评论(0编辑  收藏  举报