|
发表于 2005-5-10 14:35:05
|
显示全部楼层
Post by linux_now
为什么
echo foo | sed 's/o*/EEE/'
结果是'EEEfoo', 而不是'fEEE'。 :confused:
首先*的意思是匹配前面的一个char.set出现的次数为0次或多次(注意0次)
因此s/o*/EEE/在处理foo时首先是匹配o出现0次,当然开头就匹配了,而又没有加g,因此只匹配一次!
不妨试试下面几个:
- echo foo|sed 's/o*/EEE/g'
复制代码- echo foo|sed 's/o*o/EEE/'
复制代码 这里相当于加了边界! |
|