sed的模式匹配
在linux中,sed命令很有用,因此你也必须学会使用sed,在网上有很多地方介绍sed,大家可以在网上彻头彻尾的好好学习sed的具体使用。在Makefile中你会看到如下的代码
HOSTARCH:=$(shell uname -m | \
sed -e s/i.86/i386/ \
-e s/sun4u/sparc64/ \
-e s/arm.*/arm/)
在
上面的例子中-e表示在一行中执行多个sed命令,s表示用后面的信息替换前面的信息.例如s/sun4u/sparc64/表示sum4u替换成
sparc64,在上面的例子中就表示将当前的uname
-m中的信息替换进行替换,如果是i后面有一个字符,然后有86的信息(i686)替换成i386或者如果有arm的信息替换成arm.
如下的信息是网上摘下的:
锚定行的开始 如:/^sed/匹配所有以sed开头的行。
$
锚定行的结束 如:/sed$/匹配所有以sed结尾的行。
.
匹配一个非换行符的字符 如:/s.d/匹配s后接一个任意字符,然后是d。
*
匹配零或多个字符 如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。
[]
匹配一个指定范围内的字符,如/[Ss]ed/匹配sed和Sed。
[^]
匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。
\(..\)
保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers。
&
保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。
\<
锚定单词的开始,如:/\\>
锚定单词的结束,如/love\>/匹配包含以love结尾的单词的行。
x\{m\}
重复字符x,m次,如:/0\{5\}/匹配包含5个o的行。
x\{m,\}
重复字符x,至少m次,如:/o\{5,\}/匹配至少有5个o的行。
x\{m,n\}
重复字符x,至少m次,不多于n次,如:/o\{5,10\}/匹配5--10个o的行。
阅读(8798) | 评论(0) | 转发(0) |