早教吧 育儿知识 作业答案 考试题库 百科 知识分享

Linuxshell正则表达式的问题关于sed命令中使用正则表达式,我有以下一些疑问.这里有两个例子.$echothisisanexample|sed's/\w\+/[&]/g'[this][is][an][example]$echosevenEIGHT|sed's/\([a-z]\+\)\([A-Z]\+\)/\2\

题目详情
Linux shell正则表达式的问题
关于sed命令中使用正则表达式,我有以下一些疑问.
这里有两个例子.
$ echo this is an example | sed 's/\w\+/[&]/g'
[this] [is] [an] [example]
$ echo seven EIGHT | sed 's/\([a-z]\+\) \([A-Z]\+\)/\2 \1/'
EIGHT seven
我的问题是,在这两个例子中,+的前面都有一个\,而如果去掉了这个\,sed命令的匹配是不成立的.
$ echo this is an example | sed 's/\w+/[&]/g'
this is an example
而在egrep命令中,则并非如此.
$ egrep this is an example | egrep -o " [a-z]+ "
this
is
an
example
想问问,\符号在sed命令中的作用是什么呢?为什么会这样呢?
▼优质解答
答案和解析
\w+的意思是数字和字母的字串
而你后一个用的是[a-z]+小写字母的字串
其实上面那个\w ,你也可以写成[a-zA-Z0-9_]+
效果是一样的