当前位置: 技术问答>linux和unix
【sed】简单匹配
来源: 互联网 发布时间:2016-12-09
本文导语: echo "123 abc" | sed 's/[0-9]*/(&)/' 显示的结果是: (123) abc 因为*是所谓的“贪婪”匹配。 但 echo "123 abc" | sed 's/[0-9]+/(&)/' 显示的结果还是: 123 abc 为什么第二个sed命令没有匹配到123呢? | ...
echo "123 abc" | sed 's/[0-9]*/(&)/'
显示的结果是:
(123) abc
因为*是所谓的“贪婪”匹配。
但
echo "123 abc" | sed 's/[0-9]+/(&)/'
显示的结果还是:
123 abc
为什么第二个sed命令没有匹配到123呢?
显示的结果是:
(123) abc
因为*是所谓的“贪婪”匹配。
但
echo "123 abc" | sed 's/[0-9]+/(&)/'
显示的结果还是:
123 abc
为什么第二个sed命令没有匹配到123呢?
|
echo "123 abc" | sed 's/[0-9]+/(&)/'
|
“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次,“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。
所以+的话应该匹配100 000 299 这样有重叠的
$ echo "122 abc" | sed 's/[0-9]*/(&)/'
(122) abc
所以+的话应该匹配100 000 299 这样有重叠的
$ echo "122 abc" | sed 's/[0-9]*/(&)/'
(122) abc
|
为什么+要转义,而*不要转义