设为首页 加入收藏

TOP

Linux中正则表达式与文件格式化处理命令(awk/grep/sed)
2014-11-24 08:07:51 来源: 作者: 【 】 浏览:1
Tags: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(正则表达式)。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇自编译Hadoop Eclipse 插件 下一篇U-boot 中的 .balignl 16 0xdeadb..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·TCP/UDP协议_百度百科 (2025-12-26 12:20:11)
·什么是TCP和UDP协议 (2025-12-26 12:20:09)
·TCP和UDP详解 (非常 (2025-12-26 12:20:06)
·Python 教程 - W3Sch (2025-12-26 12:00:51)
·Python基础教程,Pyt (2025-12-26 12:00:48)