shixulu
春芽
共回答了20个问题采纳率:95% 举报
s:替换
.gds[.]*:以.开头,之后是gds, [.]* 这个写的比较奇怪,感觉是若干个.(0-n)
//:中间什么都没有,相当于用空字符串替换,即将前面那个“.gds[.]*”模式匹配的内容删除
g:如果一行中有多个匹配,都替换
1年前
追问
2
你才是傻瓜
举报
解释的太好了,就是那个应该是转义字符,把.变成普通字符
你才是傻瓜
举报
整个命令的作用是一旦遇到.gds及其后面所有的字符都删除
举报
shixulu
是的,所以我说是以.开头的。 还有就是并不是所有字符都删除,删除的是.gds和若干个.。因为.放在[]中也变成了普通字符了。 例如:echo "sod sad ooo"|sed 's/sad[.]*//',结果是sod ooo 如果.表示任意字符,那么结果应该是'sod '了。
你才是傻瓜
举报
你说的对,那怎么才能实现一旦遇到.gds就把从它到最后的字符都删掉呢?
举报
shixulu
正则表达式修改为 .gds.* 即用.表示任意字符,*表示0到N个就可以了。