Chinaunix首页 | 论坛 | 博客
  • 博客访问: 122717
  • 博文数量: 54
  • 博客积分: 2986
  • 博客等级: 少校
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-18 10:26
文章分类

全部博文(54)

文章存档

2012年(2)

2011年(16)

2010年(36)

我的朋友

分类:

2010-06-27 21:55:06

在文本中,文字符号分为3种,如表:

普通文字符号     A到Z ,a到z,数字0到9,以及不是元字符的其他符号(比如:#、=)

元字符               12个被保留做特殊用途的符号:[]\^.|?*+(){}

不可见字符         \cx 匹配由 x 指明的控制字符。例如,/cM 匹配一个Control-M或回车符。x 的值必须是A~Z 或 a~z 之一。否则,讲c视为一个原义的"c"字符

                           \f 匹配一个换页符。等价于 \x0c 和 \cL

                          \f 匹配一个换行符。等价于 \x0a 和 \cJ

                           \r 匹配一个回车符。等价于 \x0d 和 \cM

                          \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[\f\n\r\t\v]

                           \S 匹配任何非空白字符。等价于 [^\f\n\r\t\v]

                          \t 匹配一个制表符。等价于 \x09 和 \cI

                          \v 匹配一个垂直制表符。等价于 \x0b 和 \cK

对于元字符,由于它们在正则表达式中有特殊的用途,所以如果字符串中有和元字符相同的字符,那么要用反斜杠“\”来进行转义。比如下面例中,由于“?”号是元字符,所以要匹配问号时,要加上反斜杠转义。

    对于不可见字符的匹配:有一个err文件,其内容如下

    例如: cat -v err
168158.784523 1993024434 3396788324 63375 53 h^A^L.hit.edu.cn. 1 0 1 1

cat利用-v选项显示不可见字符,本例中为^A^L,即ascii码的\001\014,则可以用一下命令匹配。

cat err|awk '{if( $6 ~ /\f/) {print $0}}'
168158.784523 1993024434 3396788324 63375 53 h
                                               .hit.edu.cn. 1 0 1 1
cat err|awk '{if( $6 ~ /\014/) {print $0}}'
168158.784523 1993024434 3396788324 63375 53 h
                                               .hit.edu.cn. 1 0 1 1
cat err|awk '{if( $6 ~ /\x0c/) {print $0}}'
168158.784523 1993024434 3396788324 63375 53 h
                                               .hit.edu.cn. 1 0 1 1

阅读(2096) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~