正则表达式整理

This is the content of my super blog post.

正则表达式整理

写这边文章的主要原因其实是因为自己记性不好,每次看完正则表达式之后,在过一段时间之后,基本已经全部忘记了,所以特此整理一下,以便查询!

\ 屏蔽特殊字符
^ 匹配开始位置。
$ 匹配结束位置。
* 匹配前面的子表达式零次或多次。
. 匹配一个位置(例如.$表示最后一个字符)
+ 匹配前面的子表达式一次或多次。
? 匹配前面的子表达式零次或一次。
{n}  n是一个非负整数。匹配确定的 n 次。
{n,} n是一个非负整数。至少匹配n 次。
{n,m} m和n均为非负整数,其中n 。最少匹配 n 次且最多匹配 m 次。
[xyz]  匹配所包含的任意一个字符。
[^xyz] 匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。
[a-z]  匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。
[^a-z] 匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。
[^$] 对空行
[^.*$] 对匹配行中任意字符串
^......$ 对包括6个字符的行
^.$ 对仅有一个字符的行
^\.[0-9][0-9] 对以一个句点和两个数字开始的行
[a-zA-Z] 对任意单字符
[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\} 对日期格式dd-mm-yyyy
[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}对IP地址格式nnn.nnn.nnn.nnn
\d  匹配一个数字字符。等价于 [0-9]。
\D  匹配一个非数字字符。等价于 [^0-9]。
\f  匹配一个换页符。等价于 \x0c 和 \cL。
\n  匹配一个换行符。等价于 \x0a 和 \cJ。
\r  匹配一个回车符。等价于 \x0d 和 \cM。
\s  匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S  匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t  匹配一个制表符。等价于 \x09 和 \cI。
\v  匹配一个垂直制表符。等价于 \x0b 和 \cK。
\w  匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
\W  匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。

awk&&sed常用语句

awk 统计次数
awk '/200/&&/192.168.3.194/{a[$11]+=1}END{for (j in a)print j,a[j]}' aa.txt     统计出现的次数

awk 求和
awk 'BEGIN{sum=0}/200/&&/192.168.3.194/{sum+=$11}END{print sum}' aa.txt     匹配并求和

awk求平均值
awk '/200/&&/192.168.3.194/{a+=$11}END{print a/NR}’ aa.txt

awk求最大值
awk 'BEGIG{a=0}{if($11>a)a=$11 fi}END{print a}’ aa.txt

awk求最小值
cat you.txt |awk 'BEGIN{a=11111}{if ($1<a) a=$1 fi}END{print a}’

awk 去重
awk '!a[$1]++' 1.txt   根据第一列去重
awk '{a[$1]=$0}END{for(i in a)print a[i]}' 1.txt  根据第一列去重

sed打印日志的时间段
sed -rn "/2015-04[-01|-06]/p” time.txt

links

social