常用正则表达式

来源:互联网 发布:查看windows重启日志 编辑:程序博客网 时间:2024/06/06 01:04
^              对行首
$              对行尾
^[the]               对以the开头行
[Ss]igna[lL]              对匹配单词signal、signaL、
Signal、                SignaL
[Ss]igna[lL]/.                   对同上,但加一句点
[mayMAY]                   对包含may大写或小写字母的行
^USER$                   对只包含USER的行
[tty]$               对以tty结尾的行
/.               对带句点的行
^d..x..x..x               对用户、用户组及其他用户组成员有可执行权限的目录
^[^l]               对排除关联目录的目录列表
[.*0]               对0之前或之后加任意字符
[000*]               对000或更多个
[iI]               对大写或小写I
[iI] [nN]               对大写或小写i或n
[^$]               对空行
[^.*$]               对匹配行中任意字符串
^......$               对包括6个字符的行
[a-zA-Z]               对任意单字符
[a-z][a-z]*               对至少一个小写字母
[^0-9/$]               对非数字或美元标识
[^0-0A-Za-z]               对非数字或字母
[123]               对1到3中一个数字
[Dd]evice               对单词device或Device
De..ce               对前两个字母为De,后跟两个任意字符,最后为ce
/^q              对以^q开始行
^.$               对仅有一个字符的行
^/.[0-9][0-9]               对以一个句点和两个数字开始的行
'"Device"'               对单词device
De[Vv]ice/.               对单词Device或deVice
[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
[^.*$]               对匹配任意行

匹配html的嵌入代码
<[^>]*>

匹配[....]的嵌入码
/[[^]]/{1,/}/]

删除仅由空字符组成的行
sed '/^[[:space:]]*$/d' filename

匹配html标签
//(<[^>]*>/)/
例如:从html文件中剔除html标签
sed 's//(<[^>]*>/)//g;/^[[:space:]]*$/d'  file.html

例如:要从下列代码中去除"[]"及其中包括的代码
[b:4c6c2a6554][color=red:4c6c2a6554]一. 替换[/color:4c6c2a6554][/b:4c6c2a6554]
sed 's//[[^]]/{1,/}/]//g' filename

匹配日期:
Month, Day, Year [A-Z][a-z]/{3,9/}, [0-9]/{1,2/}, [0-9]/{4/}
2003-01-28 或 2003.10.18 或 2003/10/10 或 2003 10 10
/([0-9]/{4/}[ /-.][0-2][0-9][ /-.][0-3][0-9]/)

匹配IP地址
/([0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}/)
/(/([0-9]/{1,3/}/./)/{3/}[0-9]/{1,3/}/)


匹配数字串
[-+]*[0-9]/{1,/} 整数
[-+]*[0-9]/{1,/}/.[0-9]/{1,/}  浮点数


从字串中解析出两个子串(前2各字符和后9个字符)
echo "WeLoveChinaUnix"|sed -e 'H;s//(../).*//1/;x;s/.*/(./{9/}/)$//1/;x;G;s//n/ /'
We ChinaUnix


分解日期串
echo 20030922|sed 's//(..../)/(../)/(../)//1 /2 /3/'|read year month day
echo $year $month $day

文件内容倒序输出
sed '1!G;h;$!d'  oldfile >newfile

原创粉丝点击