了解正则表达式的语法
元字符匹配除换行符以外的任意一个单个字符*匹配任意一个在它前面的字符[...]匹配方括号中的字符类中的任意一个,如果方括号中的第一个字符为脱字符符号(^)则表示否定匹配^如果作为正则表达式的第一个字符,则表示匹配行的开始,在awk中匹配字符串的开始,即使字符串包含嵌入的换行符$如果作为正则表达式的最后一个字符,则表示匹配行的结尾,在awk中匹配字符串的结尾,即使字符串包含嵌入的换行符\{n,m\}匹配他前面某个范围内单个字符出现的次数(包括由正则表达式指定的字符) \{n、}将匹配n次出现\{n\}至少匹配有n次出现,而且\{n,\m}匹配n和m之间的任意次出现,扩展的元字符+匹配一次或者多次的出现?0或者1次出现|指定可以匹配前面的或者后面的()对正则表达式进行分组{n,m}匹配前面的某个范围内单个字符出现的次数[Ww]hat匹配what,What\.H[12345]匹配.H1,.H2,.H3,.H4,.H5$grep '[my]' list*字符的范围[A-Z]用于指定范围数字的范围[0-9]匹配文章的标题[cC]Hapter[1-9][0-9a-z?,.;:'"]任意单个字符,可以是数字,小写字母,问号,逗号[a-zA-Z][.?!]匹配后面跟有句点,问号或感叹号的小写或者大写字母日期类MM-DD-YYMM/DD/YY[0-1][0-9][-/][0-3][0-9][-/][0-9][0-9]其中-/表示上面分隔符排除字符类[^0-9]匹配所有大写小写以及所有的特殊字符[^aeiou]匹配所有非原音字符\.DS "[^1]"不匹配.DS "[1]"posix字符类[:alnum:]可打印的字符[:alpha:]字符类[:blank:]空格和制表符[:cntrl:]控制字符[:digit:]数字字符[:graph:]可打印的和可见(不包括空格)的[:lower:]小写字符[:print:]可打印包括空白[:punct:]标点符号字符[:space:]空白字符[:upper:]大写字符[:xdigit:]十六进制数字text15105010050010005000*表示他前面的表达式可以出现一次或者多次grep '[15]0*' text15105010050010005000grep '[15]00*' text第一个值是字面值,第二个值是由*修饰105010050010005000匹配任意字符串 “.*”"books*"会匹配book,books"book.*"匹配任意字符的零次或者多次的出现“book.?”匹配book或者book加上一个任意字符,bookish就不匹配定位元字符行首^行末$'^$'空行或者‘^ *$’或者‘^.*$’字符的跨度\{n,m\}社会保险号为[0-9]\{3\}-[0-9]\[2\]-[0-9]\{4\} 三个数字一个连字符两个数字一个连字符四个数字北美地区的电话号码[0-9]\{3\}-[0-9]\{4\}分组操作圆括号()用于对正则表达式进行分组并且设置优先级egrep 'Labb(abc)?s' LabbabcLabbcompan(y|ies)指定单数或者负数匹配编写sed脚本sed命令可以指定零个,一个两个地址,若没有指定地址,那么命令将应用于这个地址匹配的任意行如果只有一个地址,那么命令应用于这个地址匹配的任意行如果指定了由逗号分隔的两个地址,那么命令应用于第一个地址一行和他后面的行,直到指定匹配的第二个地址的行如果地址后面跟有叹号,那么命令就应该用于不匹配该地址的所有行删除命令d,不会输出,他会删除所有行1d第一行$d最后一行当正则表达式作为地址提供时,这个命令将会模式匹配的行必须加//^$/d删除空行50,$d50到最后一行1,/^$/d删除从第一行到第一个空行的所有行分组命令sed使用大括号({})将一个地址嵌套在另一个地址中,或者在相同的地址上应用多个命令