Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Linux中正则表达式与文件格式化处理命令(awk/grep/sed)

一.正则表达式1.1国际字符模式匹配或匹配模式的类名[:alnum:] : 0-9,A-Z,a-z[:alpha:] : A-Z,a-z[:upper:] : A-Z[:lower:] : a-z[:digit:] : 0-9[:space:] : 空格或tab键1.2基础正则表达式^word:待查找的字符串在行首。word$:待查找的字符串在行尾。. :代表一定有一个任意字符的字符。 :转义字符,将特殊符号的意义去除。* :重复0个到无穷多个的前一个字符。[list]:从字符集合的RE字符里面找出想要选取的字符,在[]当中代表一个待查找的字符;例如:[afg]代表a或f或g的意思。[n1-n2]:代表想要找出的字符范围;eg:[0-9]表示0到9;[a-z]代表a到z。[^list]:找出不要的字符串或范围,即找出不含list中字符串的;eg:[^A-Z]:代表不要非大写字母;[^t]:不要字母t。{n,m}:相当于{n,m}的转义,因{的转义为{,因}的转义为},表示连续n到m个前一个字符。{n}:相当于{n},即表示重复n个前一个字符。{n,}:相当于{n,},表示连续n个以上的前一个字符。注:正则表达式的特殊字符与一般命令行输入命令的“通配符”并不相同。在通配符中*表示0到无限多个字符。但在正则表达式中,*则是0到无穷多个前一个字符。eg:查找以a开头的文件名的两种实现:通配符: ls -l a*正则表达式:ls -l | grep "^a.*"1.3扩张正则表达式grep默认只支持基础正则表达式,如果使用扩展性表达式,可以使用grep -E,不过更建议直接使用egrep。egrep == grep -E。+ :重复一个或一个以上的前一个RE字符。eg:egrep -n "go+d" a.txt即god,good,goood,...。? :0个或1个的前一个RE字符。eg: egrep -n "go?d" a.txt即gd,god,good,...。| :用或(or)的方式找出数个字符串。eg:egrep -n "gd|god" a.txt查找含gd或good的行。():找出‘组’字符串eg:egrep -E "g(la|oo)d" a.txt找出glad或good的行。()+:多个重复组的判别eg:egrep "A(xyz)+C" a.txt开头为A,结尾为C,中间位1一个以上的xyz字符串。注:RE:regular expression(正则表达式)。